PageSourceSearch

https://www.windpowerengineering.com/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw/

html windpowerengineering.com collected 2026-09-24 09:17:40 UTC 171,653 bytes, 2,458 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US">
3<head >
4<meta charset="UTF-8" />
5<meta name="viewport" content="width=device-width, initial-scale=1" />
6	<meta property="fb:admins" content="1140409510" />
7	<meta http-equiv="X-UA-Compatible" content="IE=edge" />
8	<meta property="fb:admins" content="107031532675062" />
9	<meta name="msvalidate.01" content="40BA1B879066C83CDFCA374CA4B490C3" />
10	<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
11
12	<!-- This site is optimized with the Yoast SEO plugin v28.5 - https://yoast.com/product/yoast-seo-wordpress/ -->
13	<title>Ingeteam develops new offshore power converter product range up to 18MW</title>
14	<meta name="description" content="Ingeteam, an independent global supplier of electrical conversion and turbine control equipment, announced that a recent in-house R&amp;D study has" />
15	<link rel="canonical" href="https://www.windpowerengineering.com/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw/" />
16	<meta name="twitter:card" content="summary_large_image" />
17	<meta name="twitter:title" content="Ingeteam develops new offshore power converter product range up to 18MW" />
18	<meta name="twitter:description" content="Ingeteam, an independent global supplier of electrical conversion and turbine control equipment, announced that a recent in-house R&amp;D study has" />
19	<meta name="twitter:image" content="https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022.jpg" />
20	<meta name="twitter:creator" content="@windpower_eng" />
21	<meta name="twitter:site" content="@windpower_eng" />
22	<meta name="twitter:label1" content="Written by" />
23	<meta name="twitter:data1" content="Sponsored Content" />
24	<meta name="twitter:label2" content="Est. reading time" />
25	<meta name="twitter:data2" content="4 minutes" />
26	
26<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/#article","isPartOf":{"@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/"},"author":{"name":"Sponsored Content","@id":"https:\/\/www.windpowerengineering.com\/#\/schema\/person\/7cf80daa4c30b290f6c5aec60a2fa8d6"},"headline":"Ingeteam develops new offshore power converter product range up to 18MW","datePublished":"2022-11-16T16:55:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/"},"wordCount":706,"image":{"@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/#primaryimage"},"thumbnailUrl":"https:\/\/www.windpowerengineering.com\/wp-content\/uploads\/2022\/11\/ingeteam-sponsored-featured-image-november2022.jpg","keywords":["ingeteam"],"articleSection":["Sponsored Content"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/","url":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/","name":"Ingeteam develops new offshore power converter product range up to 18MW","isPartOf":{"@id":"https:\/\/www.windpowerengineering.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/#primaryimage"},"image":{"@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/#primaryimage"},"thumbnailUrl":"https:\/\/www.windpowerengineering.com\/wp-content\/uploads\/2022\/11\/ingeteam-sponsored-featured-image-november2022.jpg","datePublished":"2022-11-16T16:55:45+00:00","author":{"@id":"https:\/\/www.windpowerengineering.com\/#\/schema\/person\/7cf80daa4c30b290f6c5aec60a2fa8d6"},"description":"Ingeteam, an independent global supplier of electrical conversion and turbine control equipment, announced that a recent in-house R&amp;D study has","breadcrumb":{"@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/#primaryimage","url":"https:\/\/www.windpowerengineering.com\/wp-content\/uploads\/2022\/11\/ingeteam-sponsored-featured-image-november2022.jpg","contentUrl":"https:\/\/www.windpowerengineering.com\/wp-content\/uploads\/2022\/11\/ingeteam-sponsored-featured-image-november2022.jpg","width":770,"height":513},{"@type":"BreadcrumbList","@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.windpowerengineering.com\/"},{"@type":"ListItem","position":2,"name":"Recent Windpower Articles","item":"https:\/\/www.windpowerengineering.com\/recent-windpower-articles\/"},{"@type":"ListItem","position":3,"name":"Ingeteam develops new offshore power converter product range up to 18MW"}]},{"@type":"WebSite","@id":"https:\/\/www.windpowerengineering.com\/#website","url":"https:\/\/www.windpowerengineering.com\/","name":"Windpower Engineering &amp; Development","description":"The technical resource for wind power profitability","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.windpowerengineering.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.windpowerengineering.com\/#\/schema\/person\/7cf80daa4c30b290f6c5aec60a2fa8d6","name":"Sponsored Content","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a147d255d7dc09ac6a63ffd11252bf58c7d1f42f366b90996e012e3020eb8252?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a147d255d7dc09ac6a63ffd11252bf58c7d1f42f366b90996e012e3020eb8252?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a147d255d7dc09ac6a63ffd11252bf58c7d1f42f366b90996e012e3020eb8252?s=96&d=mm&r=g","caption":"Sponsored Content"},"url":"https:\/\/www.windpowerengineering.com\/author\/shulett\/"}]}</script>
26
27	<!-- / Yoast SEO plugin. -->
28
29
30<link rel='dns-prefetch' href='//scripts.wtwhmedia.com' />
31<link rel='dns-prefetch' href='//fonts.googleapis.com' />
32<link rel="alternate" type="application/rss+xml" title="Windpower Engineering &amp; Development &raquo; Feed" href="https://www.windpowerengineering.com/feed/" />
33<link rel="alternate" type="application/rss+xml" title="Windpower Engineering &amp; Development &raquo; Comments Feed" href="https://www.windpowerengineering.com/comments/feed/" />
34<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.windpowerengineering.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.windpowerengineering.com%2Fingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw%2F" />
35<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.windpowerengineering.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.windpowerengineering.com%2Fingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw%2F&#038;format=xml" />
36<style id="wp-img-auto-sizes-contain-inline-css">
37img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
38/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
39</style>
40<link rel='stylesheet' id='theme-wtwh-amplifying-css' href='https://www.windpowerengineering.com/wp-content/themes/ThemeWTWH/style.css?ver=1749457156' media='all' />
41<style id="wp-emoji-styles-inline-css">
42
43	img.wp-smiley, img.emoji {
44		display: inline !important;
45		border: none !important;
46		box-shadow: none !important;
47		height: 1em !important;
48		width: 1em !important;
49		margin: 0 0.07em !important;
50		vertical-align: -0.1em !important;
51		background: none !important;
52		padding: 0 !important;
53	}
54/*# sourceURL=wp-emoji-styles-inline-css */
55</style>
56<style id="wp-block-library-inline-css">
57:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
57--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
58
59/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
60</style>
61<style id="classic-theme-styles-inline-css">
62/*! This file is auto-generated */
63.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
64/*# sourceURL=/wp-includes/css/classic-themes.min.css */
65</style>
66
67<style id="global-styles-inline-css">
68:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
680) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
68.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
69/*# sourceURL=global-styles-inline-css */
70</style>
71
72<link rel='stylesheet' id='buttons-css' href='https://www.windpowerengineering.com/wp-includes/css/buttons.min.css?ver=7.1.1' media='all' />
73<link rel='stylesheet' id='dashicons-css' href='https://www.windpowerengineering.com/wp-includes/css/dashicons.min.css?ver=7.1.1' media='all' />
74<link rel='stylesheet' id='mediaelement-css' href='https://www.windpowerengineering.com/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css?ver=4.2.17' media='all' />
75<link rel='stylesheet' id='wp-mediaelement-css' href='https://www.windpowerengineering.com/wp-includes/js/mediaelement/wp-mediaelement.min.css?ver=7.1.1' media='all' />
76<link rel='stylesheet' id='media-views-css' href='https://www.windpowerengineering.com/wp-includes/css/media-views.min.css?ver=7.1.1' media='all' />
77<link rel='stylesheet' id='imgareaselect-css' href='https://www.windpowerengineering.com/wp-includes/js/imgareaselect/imgareaselect.css?ver=0.9.8' media='all' />
78<link rel='stylesheet' id='frontend-sponsored-ads-css-css' href='https://www.windpowerengineering.com/wp-content/plugins/sponsored-content-ad/css/frontend-sponsored-ads.css?ver=1.01202609241790241459' media='all' />
79<link rel='stylesheet' id='ea-fonts-css' href='https://fonts.googleapis.com/css?family=Open+Sans:300,700&#038;ver=7.1.1' media='all' />
80<link rel='stylesheet' id='ea-style-css' href='https://www.windpowerengineering.com/wp-content/themes/ThemeWTWH/assets/css/main.css?ver=1749457156' media='all' />
81<script id="jquery-core-js" src="https://www.windpowerengineering.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 81
81
82<script id="jquery-migrate-js" src="https://www.windpowerengineering.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
vendor: 1 bytes, line 82
82
83<script id="utils-js-extra">
84var userSettings = {"url":"/","uid":"0","time":"1790241459","secure":"1"};
85//# sourceURL=utils-js-extra
86</script>
vendor: 1 bytes, line 86
86
87<script id="utils-js" src="https://www.windpowerengineering.com/wp-includes/js/utils.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 87
87
88<script id="moxiejs-js" src="https://www.windpowerengineering.com/wp-includes/js/plupload/moxie.min.js?ver=1.3.5.1"></script>
vendor: 1 bytes, line 88
88
89<script id="plupload-js" src="https://www.windpowerengineering.com/wp-includes/js/plupload/plupload.min.js?ver=2.1.9"></script>
vendor: 1 bytes, line 89
89
90<script id="frontend-sponsored-ads-script-js" src="https://www.windpowerengineering.com/wp-content/plugins/sponsored-content-ad/js/frontend-sponsored-ads.js"></script>
vendor: 1 bytes, line 90
90
91<script id="wtwh-uni-gam-unified-ad-logic-js-extra">
92var wtwh_gam_ad_config = {"slots":[{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_header","div_id":"div-gpt-wpe-header","desktop_sizes":["728x90"],"mobile_sizes":["300x250"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_interstitial","div_id":"div-gpt-wpe_interstitial","desktop_sizes":["640x480"],"mobile_sizes":["0x0"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_wallpaper","div_id":"div-gpt-wpe_wallpaper","desktop_sizes":["1x1"],"mobile_sizes":["1x1"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"wallpaper"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_allstreamflex","div_id":"div-gpt-wpe_allstreamflex","desktop_sizes":["1x1"],"mobile_sizes":["1x1"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_allstreamprelude","div_id":"div-gpt-wpe_allstreamprelude","desktop_sizes":["1x1"],"mobile_sizes":["1x1"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_sidebar1","div_id":"div-gpt-wpe_sidebar1","desktop_sizes":["300x250","300x600"],"mobile_sizes":["300x250"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_sidebar2","div_id":"div-gpt-wpe_sidebar2","desktop_sizes":["300x250","300x600"],"mobile_sizes":["300x250"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_sidebarbottom","div_id":"div-gpt-wpe_sidebarbottom","desktop_sizes":["300x250","300x600"],"mobile_sizes":["300x250"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_sidebar1","div_id":"div-gpt-wpe-sidebar-ad","desktop_sizes":["300x250","300x600"],"mobile_sizes":["300x250"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_sidebarbottom","div_id":"div-gpt-wpe_sidebarbottom_home","desktop_sizes":["300x250","300x600"],"mobile_sizes":["300x250"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_sidebarbottom","div_id":"div-gpt-wpe_sidebarbottom_primary","de
92sktop_sizes":["300x250","300x600"],"mobile_sizes":["300x250"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_largeleader","div_id":"jumbo-banner-ad-container","desktop_sizes":["970x90","970x250"],"mobile_sizes":["0x0"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"}],"prestitial":{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_prestitial","div_id":"gam-holder-prestitial-banner","desktop_sizes":["640x480"],"mobile_sizes":["300x225"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"prestitial"},"enable_single_request":"","collapse_empty_divs":"1","page_url":"https://www.windpowerengineering.com/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw/","default_page_targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"auto_display_ads":"1","lazy_load_ads":"","load_gpt_library":"","has_keyword_ads":"0"};
93var wtwh_gam_ga4_targeting_values = {"ga4_targeting_values":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"}};
94//# sourceURL=wtwh-uni-gam-unified-ad-logic-js-extra
95</script>
vendor: 1 bytes, line 95
95
96<script id="wtwh-uni-gam-unified-ad-logic-js" src="https://www.windpowerengineering.com/wp-content/plugins/wtwh-universal-gam/assets/js/frontend/ad-config/unified-ad-logic.js?ver=1790241459"></script>
96
97<link rel="https://api.w.org/" href="https://www.windpowerengineering.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.windpowerengineering.com/wp-json/wp/v2/posts/49768" /><link rel='shortlink' href='https://www.windpowerengineering.com/?p=49768' />
98<meta property="og:description" content="Ingeteam, an independent global supplier of electrical conversion and turbine control equipment, announced that a recent in-house R&amp;D study has allowed them to work out the optimal electrical power conversion designs for offshore wind turbines up to 18MW. Ingeteam says it designed its new medium voltage full power converter range ‘as a response to some&hellip;">
99<meta property="og:image" content="https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022-150x150.jpg">
100<meta property="og:site_name" content="Windpower Engineering &amp; Development">
101<meta property="og:title" content="Ingeteam develops new offshore power converter product range up to 18MW">
102<meta property="og:type" content="article">
103<meta property="og:url" content="https://www.windpowerengineering.com/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw/">
104<meta property="og:locale" content="en_US">
105<!-- Google Tag Manager for Glboal Container-->
106<script>
vendor: 327 bytes, lines 106-110
106(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
107new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
108j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
109'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
110})(window,document,'script','dataLayer','
110GTM-MMC9PJ9
vendor: 3 bytes, line 110
110');
110</script>
110
111<!-- End Google Tag Manager -->
112 
113 
114<!-- Google Tag Manager -->
115<script>
vendor: 327 bytes, lines 115-119
115(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
116new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
117j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
118'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
119})(window,document,'script','dataLayer','
119GTM-5WXXHJ7
vendor: 3 bytes, line 119
119');
119</script>
119
120<!-- End Google Tag Manager -->
121
122
123
124
125
126 
127
128
129
130
131
132<style>
133#interContainer{
134position: absolute;
135width: 690px; /*Width of interstitial box*/
136left: 0;
137top: 0;
138padding: 15px;
139padding-top: 0;
140background-color: #ffffff;
141
142visibility: hidden;
143z-index: 600;
144}
145
146#interContainer .headerbar{ /*CSS for header bar of interstitial box*/
147color: gray;
148padding: 5px 0;
149text-align: right;
150}
151
152#interContainer .headerbar a{ /*CSS for header bar links of interstitial box*/
153font-size: 120%;
154text-decoration: none;
155}
156
157
158#interContent{ /*CSS for div that holds the content to show*/
159
160
161background-color: white;
162}
163
164#interVeil{ /*CSS for background veil that covers entire page while interstitial box is visible*/
165position: absolute;
166background: black url(/interstitial/blackdot.gif);
167right: 0;
168width: 10px;
169top: 0;
170z-index: 599;
171visibility: hidden;
172filter:progid:DXImageTransform.Microsoft.alpha(opacity=80);
173opacity: 0.8;
174}
175
176
177
178</style><link rel="icon" href="https://www.windpowerengineering.com/wp-content/uploads/2018/08/cropped-windpower-32x32.png" sizes="32x32" />
179<link rel="icon" href="https://www.windpowerengineering.com/wp-content/uploads/2018/08/cropped-windpower-192x192.png" sizes="192x192" />
180<link rel="apple-touch-icon" href="https://www.windpowerengineering.com/wp-content/uploads/2018/08/cropped-windpower-180x180.png" />
181<meta name="msapplication-TileImage" content="https://www.windpowerengineering.com/wp-content/uploads/2018/08/cropped-windpower-270x270.png" />
182<style id="wp-custom-css">
183.SoundCloudPubDate{padding:10px}
184        .SoundCloudTitle{padding:10px}
185
186/*Fix for Categories/home page article display*/
187@media only screen and (max-width: 500px) {
188 .content .entry .entry-header, .archive-entry .entry-header {
189		
190	}
191	
192	
193	.entry-content img {
194		text-align: center !important;
195		width: 100% !important;
196	}
197	
198	.archive-entry {
199		display: flex;
200		flex-direction: column-reverse;
201		width: 100% !important;
202	}
203	
204	.archive-entry > .entry-header, .archive-entry .entry-content {
205		width: 100% !important;
206	}
207}
208
209@media only screen and (max-width: 767px) {
210.archive.category .entry-content p  {
211	display: none !important
212}
213	
214	.blog .entry-content p {
215		display: none !important;
216	}
217	
218	
219}
220
221.slick-slider.header-slides .header-slide .overlay h4, .slick-slider.header-slides .header-slide .overlay h2 {
222text-shadow: 2px 2px 5px black;
223background: none !important;
224-webkit-text-stroke-width: 0px !important;
225-webkit-text-stroke-color: transparent !important;
226}
227
228/* Search Page */
229body.search .site-inner {
230    padding-left: unset;
231    padding-right: unset;
232}
233
234/*SUBSCRIBE BUTTON CSS*/
235
236.site-header--subscribe{
237	background-color: #80a0c1;
238  color: white;
239  padding: 0 16px;
240}
241
242.site-header--subscribe a{
243	color: white !important;
244}
245
246/*GATED COUNTRY FIELD FULL WIDTH & TERMS====*/
247#input_67_54_6_container{
248flex: 0 0 100%;
249}
250
251.terms{
252	font-size: 10px;
253  font-style: italic;
254}
255
256.type-gated .entry-title{
257	text-align: left;
258}
259
260.type-gated .entry-content img{
261	width: 100%;
262}
263
264#div-gpt-wpe_sidebarbottom_home, #div-gpt-wpe_sidebarbottom_primary { 	margin-top: 20px; 
265}
266</style>
267    
267<script id="wtwh-uni-gam-content-hash-variables">
268        var contentHash = "ea7b59f8753211776897a2cac758ae46"; 
269        var cat_target  = "ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY";
270    </script>
270
271    <link rel='stylesheet' id='su-shortcodes-css' href='https://www.windpowerengineering.com/wp-content/plugins/shortcodes-ultimate/includes/css/shortcodes.css?ver=7.9.0' media='all' />
272
273<script>
274  (function () {
275    'use strict';
276
277    // ─── Globals ────────────────────────────────────────────────────────────────
278    window.dataLayer  = window.dataLayer  || [];
279    window.gtag       = window.gtag       || function () { dataLayer.push(arguments); };
280    window.googletag  = window.googletag  || { cmd: [] };
281
282    window.__cmpRegion = {
283      country:   "US",
284      regulated: false
285    };
286
287    window.__wtwhConsentDebug = {
288      consentEvents: [],
289      gptMode: null
290    };
291
292    // ─── Helpers ────────────────────────────────────────────────────────────────
293    function log() {
294      try {
295        var args = Array.prototype.slice.call(arguments);
296        args.unshift('[WTWH Consent/GPT]');
297        console.log.apply(console, args);
298      } catch (e) {}
299    }
300
301    function dispatchWindowEvent(eventName, detail) {
302      try {
303        window.dispatchEvent(new CustomEvent(eventName, { detail: detail || {} }));
304      } catch (e) {
305        try {
306          var ev = document.createEvent('CustomEvent');
307          ev.initCustomEvent(eventName, false, false, detail || {});
308          window.dispatchEvent(ev);
309        } catch (err) {}
310      }
311    }
312
313    function getCookie(name) {
314      var nameEQ = name + '=';
315      var parts  = document.cookie.split(';');
316      for (var i = 0; i < parts.length; i++) {
317        var c = parts[i];
318        while (c.charAt(0) === ' ') c = c.substring(1);
319        if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length);
320      }
321      return null;
322    }
323
324    function hasKlaroCookie() {
325      return !!getCookie('klaro-consent');
326    }
327
328    function getKlaroManager() {
329      try {
330        if (!window.klaro || typeof window.klaro.getManager !== 'function') return null;
331        return window.klaro.getManager();
332      } catch (e) {
333        return null;
334      }
335    }
336
337    function getStoredConsents() {
338      try {
339        var manager = getKlaroManager();
340        if (!manager || !manager.consents) return null;
341        return {
342          analytics: !!manager.consents.analytics,
343          marketing: !!manager.consents.marketing
344        };
345      } catch (e) {
346        return null;
347      }
348    }
349
350    function getMarketingConsentState() {
351      var c = getStoredConsents();
352      return c ? c.marketing : null;
353    }
354
355    // ─── Consent state tracker ───────────────────────────────────────────────────
356    var consentState = {
357      initialized:          false,
358      lastAppliedSignature: null
359    };
360
361    function consentSignature(consents) {
362      return (consents.analytics ? '1' : '0') + '|' + (consents.marketing ? '1' : '0');
363    }
364
365    // ─── Core consent application ────────────────────────────────────────────────
366    function pushConsentEvent(eventName, analyticsGranted, marketingGranted) {
367      var detail = {
368        consent_analytics:        analyticsGranted ? 'granted' : 'denied',
369        consent_marketing:        marketingGranted ? 'granted' : 'denied',
370        consent_country:          window.__cmpRegion.country,
371        consent_regulated_region: window.__cmpRegion.regulated ? 'true' : 'false'
372      };
373
374      window.dataLayer.push({
375        event:                    eventName,
376        consent_analytics:        detail.consent_analytics,
377        consent_marketing:        detail.consent_marketing,
378        consent_country:          detail.consent_country,
379        consent_regulated_region: detail.consent_regulated_region
380      });
381
382      window.__wtwhConsentDebug.consentEvents.push({ event: eventName, detail: detail, ts: Date.now() });
383      dispatchWindowEvent(eventName, detail);
384      log('Consent event fired:', eventName, detail);
385    }
386
387    function updateGoogleConsent(consents) {
388      gtag('consent', 'update', {
389        analytics_storage:     consents.analytics ? 'granted' : 'denied',
390        ad_storage:            consents.marketing ? 'granted' : 'denied',
391        ad_user_data:          consents.marketing ? 'granted' : 'denied',
392        ad_personalization:    consents.marketing ? 'granted' : 'denied',
393        functionality_storage: 'granted',
394        security_storage:      'granted'
395      });
396    }
397
398    function applyInitialConsent(consents) {
399      if (!consents) return;
400      var sig = consentSignature(consents);
401      if (consentState.initialized) {
402        log('applyInitialConsent called after already initialized — skipping');
403        return;
404      }
405      updateGoogleConsent(consents);
406      pushConsentEvent('consent_initialized', consents.analytics, c
406onsents.marketing);
407      consentState.initialized          = true;
408      consentState.lastAppliedSignature = sig;
409    }
410
411    function applyUpdatedConsent(consents) {
412      if (!consents) return;
413      var sig = consentSignature(consents);
414      if (sig === consentState.lastAppliedSignature) {
415        log('Consent unchanged — skipping duplicate consent_updated');
416        return;
417      }
418      updateGoogleConsent(consents);
419      pushConsentEvent('consent_updated', consents.analytics, consents.marketing);
420      consentState.initialized          = true;
421      consentState.lastAppliedSignature = sig;
422    }
423
424    // ─── Step 1: gtag default ────────────────────────────────────────────────────
425    gtag('consent', 'default', {
426      ad_storage:            window.__cmpRegion.regulated ? 'denied' : 'granted',
427      ad_user_data:          window.__cmpRegion.regulated ? 'denied' : 'granted',
428      ad_personalization:    window.__cmpRegion.regulated ? 'denied' : 'granted',
429      analytics_storage:     window.__cmpRegion.regulated ? 'denied' : 'granted',
430      functionality_storage: 'granted',
431      security_storage:      'granted'
432    });
433
434    // ─── Step 2: Non-regulated — initialize immediately as fully granted ─────────
435    if (!window.__cmpRegion.regulated) {
436      var openConsents = { analytics: true, marketing: true };
437      consentState.initialized          = true;
438      consentState.lastAppliedSignature = consentSignature(openConsents);
439      pushConsentEvent('consent_initialized', true, true);
440    }
441
442    // ─── Klaro config ────────────────────────────────────────────────────────────
443    window.klaroConfig = {
444      version:               1,
445      elementID:             'klaro',
446      storageMethod:         'cookie',
447      storageName:           'klaro-consent',
448      cookieExpiresAfterDays: 365,
449      default:               false,
450      mustConsent:           true,
451      acceptAll:             true,
452      hideDeclineAll:        false,
453      htmlTexts:             true,
454      lang:                  'en',
455      translations: {
456        en: {
457          consentNotice: {
458            description: 'We use cookies for analytics and marketing. You can manage your preferences at any time.',
459            learnMore:   'Manage preferences'
460          },
461          consentModal: {
462            title:       'This website uses cookies',
463            description: 'We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you\u2019ve provided to them or that they\u2019ve collected from your use of their services.'
464          },
465          ok:      'Accept all',
466          decline: 'Reject all',
467          save:    'Save preferences',
468          close:   'Close'
469        }
470      },
471      services: [
472        { name: 'analytics', title: 'Analytics', purposes: ['analytics'], required: false, default: false },
473        { name: 'marketing', title: 'Marketing', purposes: ['marketing'], required: false, default: false }
474      ],
475      callback: function (consent, service) {
476        try {
477          var manager = getKlaroManager();
478          if (!manager || !manager.consents) return;
479
480          var currentConsents = {
481            analytics: !!manager.consents.analytics,
482            marketing: !!manager.consents.marketing
483          };
484
485          if (!consentState.initialized && hasKlaroCookie()) {
486            applyInitialConsent(currentConsents);
487            return;
488          }
489
490          applyUpdatedConsent(currentConsents);
491        } catch (e) {
492          console.error('Klaro callback error', e);
493        }
494      }
495    };
496
497    // ─── Open consent modal ──────────────────────────────────────────────────────
498    window.openConsentSettings = function () {
499      try {
500        if (window.klaro && typeof window.klaro.show === 'function') {
501          window.klaro.show(window.klaroConfig, true);
502          return;
503        }
504        var manager = getKlaroManager();
505        if (manager && typeof manager.showConsentModal === 'function') {
506          manager.showConsentModal();
507        }
508      } catch (e) {
509        console.warn('Unable to open Klaro consent settings', e);
510      }
511    };
512
513    // ─── Klaro onload handler ────────────────────────────────────────────────────
514    window.__applyKlaroInitialConsent = function () {
515      try {
516        if (!window.__cmpRegion.regulated) return;
517        if (!hasKlaroCookie()) return;
518        var manager = getKlaroManager();
519        if (!manager || !manager.consents) return;
520        applyInitialConsent({
521          analytics: !!manager.consents.analytics,
522          marketing: !!manager.consents.marketing
523        });
524      } catch (e) {
525        console.warn('Klaro consent initialization failed', e);
526      }
527    };
528
529    // ─── GPT bootstrap ───────────────────────────────────────────────────────────
530    // Always uses securepubads (standard GPT).
531    // For denied-consent users, applies nonPersonalizedAds instead of switching
532    // to the limited GPT URL — this preserves pubads() availability and gives
533    // access to the standard demand pool (contextual only, no user signals).
534    (function () {
535      if (window.__wtwhGptBootstrapInitialized) return;
536      window.__wtwhGptBootstrapInitialized = true;
537
538      var GPT_MODE_FULL    = 'full';
539      var GPT_MODE_NPA     = 'npa';   // non-personalized ads — replaces "limited"
540
541      // Single GPT URL for all cases
542      var GPT_URL = 'https://securepubads.g.doubleclick.net/tag/js/gpt.js';
543
544      var gptScriptRequested   = false;
545      var gptScriptLoaded      = false;
546      var gptDecisionFinalized = false;
547
548      function redactUrl(rawUrl) {
549        if (!rawUrl) return '';
550        try {
551          var url = new URL(rawUrl, window.location.origin);
552          ['s', 'loc'].forEach(function (key) {
553            if (url.searchParams.has(key)) url.searchParams.set(key, 'REDACTED');
554          });
555          return url.href;
556        } catch (e) {
557          return rawUrl;
558        }
559      }
560
561      // Returns null when consent state is not yet known (regulated, Klaro not loaded yet).
562      // Returning null defers GPT loading until a consent signal arrives.
563      function selectGptMode() {
564        if (!window.__cmpRegion.regulated) return GPT_MODE_FULL;
565
566        var marketingConsent = getMarketingConsentState();
567        if (marketingConsent === true)  return GPT_MODE_FULL;
568        if (marketingConsent === false) return GPT_MODE_NPA;
569
570        // null = Klaro hasn't restored consent yet — wait
571        return null;
572      }
573
574      function dispatchGptReady(mode) {
575        window.__gptMode  = mode;
576        window.__gptReady = true;
577        window.__wtwhConsentDebug.gptMode = mode;
578
579        window.dataLayer.push({ event: 'gpt_ready', gpt_mode: mode });
580        dispatchWindowEvent('gpt_ready', { gpt_mode: mode });
581        log('gpt_ready dispatched with mode:', mode);
582      }
583
584      function configureGptAfterLoad(mode) {
585        window.googletag.cmd.push(function () {
586          try {
587            if (typeof googletag.pubads !== 'function') {
588              log('pubads() unavailable after GPT load');
589              return;
590            }
591
592            if (mode === GPT_MODE_NPA) {
593              // Consent denied: serve non-personalized ads.
594              // Uses standard GPT pipeline with no user signals.
595              // Better fill rate than limited ads URL; compliant with
596              // ad_storage: denied + nonPersonalizedAds: true.
597              try {
598                googletag.pubads().setPrivacySettings({
599                  nonPersonalizedAds: true
600                });
601                log('Configured GPT for non-personalized ads (consent denied)');
602              } catch (e) {
603                log('Failed to set nonPersonalizedAds', e);
604              }
605            } else {
606              log('Configured GPT for full personalized ads');
607            }
608
609            var cleanPage = redactUrl(window.location.href);
610            var cleanRef  = redactUrl(document.referrer);
611
612            try { googletag.pubads().set('page_url', cleanPage); } catch (e) {}
613            if (cleanRef) {
614              try { googletag.pubads().set('referrer_url', cleanRef); } catch (e) {}
615            }
616            try {
617              googletag.pubads().setTargeting('s',   'REDACTED');
618              googletag.pubads().setTargeting('loc', 'REDACTED');
619            } catch (e) {}
620
621            dispatchGptReady(mode);
622          } catch (e) {
623            log('Error during GPT configuration', e);
624          }
625        });
626      }
627
628      function loadGptScript(mode) {
629        if (gptScriptRequested || gptScriptLoaded || gptDecisionFinalized) {
630          log('GPT already requested/loaded — skipping');
631          return;
632        }
633
634        gptDecisionFinalized = true;
635        gptScriptRequested   = true;
636
637        var script   = document.createElement('script');
638        script.async = true;
639        script.src   = GPT_URL;
640
641        script.onload = function () {
642          gptScriptLoaded = true;
643          log('GPT script loaded, mode:', mode);
644          configureGptAfterLoad(mode);
645        };
646
647        script.onerror = function () {
648          gptScriptRequested   = false;
649          gptScriptLoaded      = false;
650          gptDecisionFinalized = false;
651          log('Failed to load GPT script');
652        };
653
654        document.head.appendChild(script);
655        log('Requested GPT script, mode:', mode);
656      }
657
658      function tryLoadGpt() {
659        if (gptDecisionFinalized) return true;
660        var mode = selectGptMode();
661        if (mode === null) return false;
662        loadGptScript(mode);
663        return true;
664      }
665
666      // Non-regulated: load immediately
667      if (!window.__cmpRegion.regulated) {
668        tryLoadGpt();
669        return;
670      }
671
672      // Regulated: wait for a consent signal before loading GPT
673      window.addEventListener('consent_initialized', tryLoadGpt);
674      window.addEventListener('consent_updated',     tryLoadGpt);
675
676      // Poll briefly in case Klaro resolves before listeners fire
677      var pollCount    = 0;
678      var maxPolls     = 3;
679      var pollInterval = setInterval(function () {
680        pollCount++;
681        if (tryLoadGpt() || pollCount >= maxPolls) {
682          clearInterval(pollInterval);
683        }
684      }, 100);
685
686      // Hard fallback: no consent signal after a short bootstrap grace period → load NPA
687      setTimeout(function () {
688        if (!gptDecisionFinalized) {
689          log('Consent timeout — falling back to non-personalized GPT');
690          loadGptScript(GPT_MODE_NPA);
691        }
692      }, 300);
693    })();
694  })();
695</script>
vendor: 1 bytes, line 695
695
696<script data-wtwh-analytics-loader>(function(w,d){'use strict';
697var cfg={"scriptUrl":"https://scripts.wtwhmedia.com/developer/wtwh_analytics/env/prod/index.js","endpoint":"https://collect.wtwhmedia.com/v1/events","site":"www.windpowerengineering.com","pageUrl":"https://www.windpowerengineering.com/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw/","country":"US","consentDenied":false};
698var consentMessageType="arrowfly:analytics-consent";
699if(w.__wtwhAnalyticsEdgeLoaderInstalled)return;
700w.__wtwhAnalyticsEdgeLoaderInstalled=true;
701var analytics=null;
702var pageTracker=null;
703var consentGranted=!cfg.consentDenied;
704function browserConsent(){
705  var n=w.navigator||{};
706  return n.globalPrivacyControl!==true&&n.doNotTrack!=='1';
707}
708function canTrack(){return consentGranted&&browserConsent();}
709function embedFrames(){
710  return d.querySelectorAll('iframe[src*="embeds.wtwhmedia.com"],iframe[src*="embeds.dev.wtwhmedia.com"]');
711}
712function broadcastEmbedConsent(){
713  var msg={type:consentMessageType,granted:canTrack()};
714  var frames=embedFrames();
715  for(var i=0;i<frames.length;i++){
716    try{
717      var frame=frames[i];
718      var targetOrigin=new URL(frame.src,w.location.href).origin;
719      if(frame.contentWindow)frame.contentWindow.postMessage(msg,targetOrigin);
720    }catch(_){}
721  }
722}
723function startPageTracking(){
724  if(!analytics||pageTracker||!canTrack())return;
725  var api=w.wtwh&&w.wtwh.analytics;
726  if(api&&typeof api.trackPage==='function'){
727    pageTracker=api.trackPage(analytics,{props:{source:'edge-router',country:cfg.country}});
728    return;
729  }
730  analytics.track('page_view',{
731    page_url:cfg.pageUrl,
732    page_host:w.location.hostname,
733    page_path:w.location.pathname,
734    referer:d.referrer||'',
735    props:{source:'edge-router',country:cfg.country,navigation_type:'initial'}
736  });
737  analytics.flush();
738}
739function stopPageTracking(){
740  if(!pageTracker)return;
741  pageTracker.destroy();
742  pageTracker=null;
743}
744function setConsent(granted){
745  consentGranted=!!granted;
746  if(consentGranted)startPageTracking();
747  else stopPageTracking();
748  broadcastEmbedConsent();
749}
750function applyConsentEvent(event){
751  var value=event&&event.detail&&event.detail.consent_analytics;
752  if(value==='granted')setConsent(true);
753  else if(value==='denied')setConsent(false);
754}
755function readKlaroConsent(){
756  try{
757    var manager=w.klaro&&typeof w.klaro.getManager==='function'&&w.klaro.getManager();
758    if(manager&&manager.consents&&typeof manager.consents.analytics==='boolean'){
759      setConsent(manager.consents.analytics);
760      return true;
761    }
762  }catch(_){}
763  return false;
764}
765function pollKlaroConsent(){
766  if(!cfg.consentDenied)return;
767  var attempts=0;
768  var timer=w.setInterval(function(){
769    attempts++;
770    if(readKlaroConsent()||attempts>=20)w.clearInterval(timer);
771  },500);
772}
773function start(){
774  var api=w.wtwh&&w.wtwh.analytics;
775  if(!api||typeof api.create!=='function')return;
776  analytics=api.create({
777    site:String(cfg.site||w.location.hostname),
778    endpoint:String(cfg.endpoint),
779    context:{
780      page_url:String(cfg.pageUrl||w.location.href),
781      page_host:w.location.hostname,
782      page_path:w.location.pathname,
783      referer:d.referrer||''
784    },
785    consent:canTrack
786  });
787  readKlaroConsent();
788  startPageTracking();
789  broadcastEmbedConsent();
790}
791w.addEventListener('consent_initialized',applyConsentEvent);
792w.addEventListener('consent_updated',applyConsentEvent);
793w.addEventListener('load',broadcastEmbedConsent);
794d.addEventListener('load',function(event){
795  if(event.target&&event.target.tagName==='IFRAME')broadcastEmbedConsent();
796},true);
797if(w.wtwh&&w.wtwh.analytics)start();
798else{
799  var script=d.createElement('script');
800  script.async=true;
801  script.src=String(cfg.scriptUrl);
802  script.onload=start;
803  (d.head||d.documentElement).appendChild(script);
804}
805pollKlaroConsent();
806})(window,document);</script>
806<script data-wtwh-ad-info>window.dataLayer=window.dataLayer||[];window.dataLayer.push({"wtwhAdInfo":{"request":"unrestricted","verified_bot_category":"","traffic_channel":"direct_or_unknown","traffic_channel_group":"direct_or_unknown"}});</script>
806</head>
807<body class="wp-singular post-template-default single single-post postid-49768 single-format-standard wp-theme-genesis wp-child-theme-ThemeWTWH content-sidebar genesis-breadcrumbs-hidden"><div class="site-container"><header class="site-header"><div class="wrap"><div class="title-area"><p class="site-title"><a href="https://www.windpowerengineering.com/">Windpower Engineering &amp; Development</a></p></div><div class="widget-area header-widget-area"><section id="custom_html-23" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"><div id='div-gpt-wpe-header'>
808	
808<script>
809    googletag.cmd.push(function() { googletag.display('div-gpt-wpe-header'); });
810  </script>
810
811</div>
812</div></div></section>
813</div><div class="mobile-toggles"><a href="#" class="search-toggle"><i class="icon-search"></i></a><a href="#" class="mobile-menu-toggle"><i class="icon-menu"></i></a></div></div></header><nav class="nav-primary" aria-label="Main"><div class="wrap"><ul id="menu-main-top" class="menu genesis-nav-menu menu-primary"><li id="menu-item-11217" class="home menu-item"><a href="https://www.windpowerengineering.com/"><span >Home</span></a></li>
814<li id="menu-item-11218" class="menu-item menu-item-has-children"><a href="/recent-windpower-articles/"><span >Articles</span></a>
815<ul class="sub-menu">
816	<li id="menu-item-47679" class="menu-item"><a href="https://www.windpowerengineering.com/recent-windpower-articles/"><span >Most recent posts</span></a></li>
817	<li id="menu-item-47680" class="menu-item"><a href="https://www.windpowerengineering.com/category/news/"><span >News</span></a></li>
818	<li id="menu-item-47681" class="menu-item"><a href="https://www.windpowerengineering.com/category/featured/"><span >Featured</span></a></li>
819</ul>
820</li>
821<li id="menu-item-11249" class="menu-item menu-item-has-children"><a><span >Resources</span></a>
822<ul class="sub-menu">
823	<li id="menu-item-23264" class="menu-item"><a href="https://www.windpowerengineering.com/category/featured/digital-issues/"><span >Digital issues</span></a></li>
824	<li id="menu-item-14495" class="menu-item"><a href="https://www.windpowerengineering.com/category/featured/podcasts/"><span >Podcasts</span></a></li>
825	<li id="menu-item-11531" class="menu-item"><a href="/suppliers/"><span >Suppliers</span></a></li>
826	<li id="menu-item-50170" class="menu-item"><a target="_blank" href="https://gateway.on24.com/wcc/experience/elitewtwhmedia/2927718/4415917/windpower-engineering-development"><span >Webinars</span></a></li>
827	<li id="menu-item-48079" class="menu-item"><a href="https://www.windpowerengineering.com/wind-power-events/"><span >Events</span></a></li>
828</ul>
829</li>
830<li id="menu-item-47684" class="menu-item"><a href="https://www.windpowerengineering.com/windpower-videos/"><span >Videos</span></a></li>
831<li id="menu-item-50249" class="menu-item menu-item-has-children"><a target="_blank" href="https://leadership.solarpowerworldonline.com/"><span >2025 Leadership</span></a>
832<ul class="sub-menu">
833	<li id="menu-item-50595" class="menu-item"><a target="_blank" href="https://leadership.solarpowerworldonline.com/2024-winners/"><span >2024 Winners</span></a></li>
834	<li id="menu-item-49890" class="menu-item"><a href="https://www.windpowerengineering.com/2023-leadership-in-wind-energy/"><span >2023 Winners</span></a></li>
835	<li id="menu-item-49747" class="menu-item"><a href="https://www.windpowerengineering.com/2022-leadership-in-wind-energy-winners/"><span >2022 Winners</span></a></li>
836</ul>
837</li>
838<li id="menu-item-49017" class="menu-item"><a href="/windpower-engineering-development-magazine-subscription-form"><span >Magazine</span></a></li>
839<li id="menu-item-50678" class="menu-item"><a target="_blank" href="https://www.mediakit.windpowerengineering.com/"><span >Advertise</span></a></li>
840<li id="menu-item-11255" class="site-header--subscribe menu-item"><a href="/subscribe-to-newsletter/"><span >Subscribe</span></a></li>
841<li class="menu-item search"><a href="#" class="search-toggle"><i class="icon-search"></i></a></li></ul></div></nav><div class="site-inner"><div class="wrap"><div class="content-sidebar-wrap"><main class="content"><article class="type-post entry" aria-label="Ingeteam develops new offshore power converter product range up to 18MW"><header class="entry-header"><h1 class="entry-title">Ingeteam develops new offshore power converter product range up to 18MW</h1>
842<p class="entry-meta"><span class="entry-author">By <a href="https://www.windpowerengineering.com/author/shulett/" class="entry-author-link" rel="author"><span class="entry-author-name">Sponsored Content</span></a></span> | <time class="entry-time">November 16, 2022</time></p></header><div class="entry-content"><p><img decoding="async" class="aligncenter size-full wp-image-49770" src="/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022.png" alt="" width="7
84270" height="274" srcset="https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022.png 770w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022-500x178.png 500w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022-368x131.png 368w" sizes="(max-width: 770px) 100vw, 770px" /></p>
843<p>Ingeteam, an independent global supplier of electrical conversion and turbine control equipment, announced that a recent in-house R&amp;D study has allowed them to work out the optimal electrical power conversion designs for offshore wind turbines up to 18MW.</p>
844<p>Ingeteam says it designed its new medium voltage full power converter range ‘as a response to some of the most important challenges facing the offshore wind market today’. The next generation of converters for giant offshore wind turbines must be able to guarantee the fulfilment of the most demanding grid codes, while meeting ever increasing power quality standards.</p>
845<p>“We wanted to provide our OEM customers working on next-generation offshore turbines with a power conversion solution that combines optimised cost, high efficiency, easy maintainability and improved reliability – all combined into one rugged product,” says Carlos Gironés, R&amp;D director of converters &amp; controls at Ingeteam.</p>
846<p>“Years of R&amp;D have led to a power conversion solution that, by parallelising two conversion lines, can push the previous power rating boundaries at medium voltage past the 13MW limit to reach 18MW. Such a cutting-edge solution in the sector is already emerging as the new standard for future offshore wind mega turbines.”</p>
847<div id="attachment_49774" style="width: 2165px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2022/11/ingeteam-sponsored-diagram-november2022.png"><img decoding="async" aria-describedby="caption-attachment-49774" src="/wp-content/uploads/2022/11/ingeteam-sponsored-diagram-november2022.png" alt="" width="2155" height="965" class="size-full wp-image-49774" srcset="https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-diagram-november2022.png 2155w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-diagram-november2022-500x224.png 500w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-diagram-november2022-1000x448.png 1000w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-diagram-november2022-1536x688.png 1536w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-diagram-november2022-2048x917.png 2048w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-diagram-november2022-368x165.png 368w" sizes="(max-width: 2155px) 100vw, 2155px" /></a><p id="caption-attachment-49774" class="wp-caption-text">Simplified electrical diagram of the Power Converter based on two conversion lines</p></div>
848<p>Ingeteam’s new converter range continues the development of HV IGBT semiconductors technology. This widely used technology has been proven during years of operation in harsh environments such as traction, marine propulsions and dredging applications. The assembly of the HV IGBT does not need any additional tooling which eases the mounting process of the BPMs and as the package of the semiconductor includes insulation to the cooling circuit there is no need for deionized water.</p>
849<p><strong>Helping to lower LCOE</strong></p>
850<p>Ingeteam says its latest converters can help contribute to the lowering of LCOE by maximising reliability and minimising the maintenance requirements of its key components. The converter has maintenance-friendly characteristics such as front access and easily removable key components which help to reduce operational costs.</p>
851<p>Ingeteam’s MV full power converters have been specially designed for the offshore market with a fully enclosed cabinet that guarantees the safe operation of the converter in harsh offshore weather. It is designed to resist the most demanding mechanical, electrical or ambient operating conditions, even in the worst grid conditions.</p>
852<p><img loading="lazy" decoding="async" src="/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022.jpg" alt="" width="7
85270" height="513" class="aligncenter size-full wp-image-49771" srcset="https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022.jpg 770w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022-500x333.jpg 500w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022-357x238.jpg 357w" sizes="auto, (max-width: 770px) 100vw, 770px" /></p>
853<p><strong>State-of-the-art controls</strong></p>
854<p>Ingeteam has developed the control algorithms of its full-power converters to guarantee the fulfilment of the most demanding grid codes. The control algorithms have been developed under SIL simulation and HIL validation before test bench validation and commissioning.</p>
855<p>The converter’s controls are based on a distributed control topology to effectively manage different conversion lines. With this topology the conversion lines can manage redundancy under faulty conditions, which increases each turbine’s availability.</p>
856<p>“One of the main electrical drive train topologies is based on two electrically independent connections, one per conversion line. The power converter redundancy provides the benefits of increasing availability of the turbine if one of the conversion lines fails – which is a key factor in the offshore market as it increases the energy yield and the return of investment,” says Gironés.</p>
857<a href="https://www.ingeteam.com/en-us/marketing/windpowerfullconversionsolutions.aspx?utm_source=wpe&#038;utm_medium=content&#038;utm_campaign=fc2022&#038;utm_content=native_sponsored_content" class="su-button su-button-style-flat" style="color:#FFFFFF;background-color:#337ab7;border-color:#296293;border-radius:0px" target="_blank" rel="noopener noreferrer"><span style="color:#FFFFFF;padding:0px 22px;font-size:17px;line-height:34px;border-color:#71a2cd;border-radius:0px;text-shadow:none"> Discover more</span></a>
858&nbsp;</p>
859<p><strong><em>About Ingeteam </em></strong></p>
860<p><img loading="lazy" decoding="async" src="/wp-content/uploads/2022/11/ingeteam-logo.jpg" alt="" width="250" height="100" class="alignright size-full wp-image-49772" srcset="https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-logo.jpg 595w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-logo-500x199.jpg 500w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-logo-368x147.jpg 368w" sizes="auto, (max-width: 250px) 100vw, 250px" /></p>
861<p><em>Ingeteam, is a team of more than 4,000 people in 24 countries, with more than 80 years of experience in providing creative solutions to specific problems to electrify society in an innovative and sustainable way through cutting-edge technology specialised in the conversion of electrical energy. Ingeteam&#8217;s complete product range in the onshore and offshore wind power sector includes power converters, wind turbine controllers, electric switchboards, Indar generators, Condition Monitoring Systems (CMS), SCADA and analysis systems for wind turbines up to 18 MW, in addition to multi-technology and multi-brand operation &amp; maintenance services. Ingeteam is the world’s #1 independent supplier of wind power converters with 55 GW of installed wind power capacity, a world-class wind generator partner and the first ISP (Independent Service Provider).</em></p>
862<p><em>Sponsored content by Ingeteam</em></p>
863<hr><span class="entry-categories">Filed Under: <a href="https://www.windpowerengineering.com/category/sponsored-content/" rel="category tag">Sponsored Content</a></span><br /><span class="entry-tags">Tagged With: <a href="https://www.windpowerengineering.com/tag/ingeteam/" rel="tag">ingeteam</a></span><br />&nbsp;<hr></div><footer class="entry-footer"></footer></article><div class="related-articles"><h4 class="block-header">Related Articles <a href="https://www.windpowerengineering.com/category/sponsored-content/">Read More ></a></h4><div class="article-listing"><div class="row"><article class="entry-summary"><a href="https://www.windpowerengineering.com/smarter-cooling-stronger-reliability-advancing-wind-turbine-gearbox-performance/" class="entry-image-link"><img width="268" height="170" src="https://www.windpowerengineering.com/wp-content/uploads/2026/06/hydac-sponsored-image1-june2026-268x170.jpg" class="attachment-ea_summary size-ea_summary wp-image-50830 wp-post-image" alt="" decoding="async" loading="lazy" /></a><h5 class="entry-title"><a href="https://www.windpowerengineering.com/smarter-cooling-stronger-reliability-advancing-wind-turbine-gearbox-performance/">Smarter Cooling, Stronger Reliability: Advancing Wind Turbine Gearbox Performance</a></h5></article><article class="entry-summary"><a href="https://www.windpowerengineering.com/delivering-the-proof-a-deep-dive-into-blade-bearing-greases/" class="entry-image-link"><img width="268" height="170" src="https://www.windpowerengineering.com/wp-content/uploads/2025/05/shelllubricants-sponsored-featured-image-may2025-v2-268x170.jpg" class="attachment-ea_summary size-ea_summary wp-image-50688 wp-post-image" alt="" decoding="async" loading="lazy" /></a><h5 class="entry-title"><a href="https://www.windpowerengineering.com/delivering-the-proof-a-deep-dive-into-blade-bearing-greases/">Delivering the proof: A deep dive into blade bearing greases</a></h5></article><article class="entry-summary"><a href="https://www.windpowerengineering.com/wind-energy-ppe-solutions/" class="entry-image-link"><img width="268" height="170" src="https://www.windpowerengineering.com/wp-content/uploads/2025/01/honeywell-sponsored-featured-image-january2025-268x170.png" class="attachment-ea_summary size-ea_summary wp-image-50588 wp-post-image" alt="" decoding="async" loading="lazy" /></a><h5 class="entry-title"><a href="https://www.windpowerengineering.com/wind-energy-ppe-solutions/">Wind Energy PPE Solutions</a></h5></article><article class="entry-summary"><a href="https://www.windpowerengineering.com/the-winds-of-change-are-picking-up-speed/" class="entry-image-link"><img width="268" height="170" src="https://www.windpowerengineering.com/wp-content/uploads/2024/09/Honeywell-Hero-268x170.jpg" class="attachment-ea_summary size-ea_summary wp-image-50450 wp-post-image" alt="" decoding="async" loading="lazy" /></a><h5 class="entry-title"><a href="https://www.windpowerengineering.com/the-winds-of-change-are-picking-up-speed/">The Winds of Change are Picking Up Speed</a></h5></article></div></div></div></main><aside class="sidebar sidebar-primary widget-area" role="complementary" aria-label="Primary Sidebar"><section id="custom_html-24" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"><div id='div-gpt-wpe_sidebar1'>
864	
864<script>
865    googletag.cmd.push(function() { googletag.display('div-gpt-wpe_sidebar1'); });
866  </script>
866
867</div>
868<div id='div-gpt-wpe_sidebarbottom_primary'>
869	
869<script>
870    googletag.cmd.push(function() { googletag.display('div-gpt-wpe_sidebarbottom_primary'); });
871  </script>
871
872</div></div></div></section>
873<section id="wtwh_soundcloud_widget-2" class="widget wtwh_soundcloud_widget"><div class="widget-wrap"><h4 class="widget-title widgettitle">Podcasts</h4>
874<div class="wtwh-soundcloud-player-wrapper"><div class="wtwh-soundcloud-player"><div><iframe width="100%" height="300" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/1675662996&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true"></iframe><div class="SoundCloudTitle">Wind Spotlight: Looking back at a year of Thrive with ZF Wind Power</div></div> <a href="/category/featured/podcasts/" class="SoundCloudTitle SoundCloudPubDate" target="_blank">See More ></a></div></div></div></section>
875<section id="custom_html-22" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><h4 class="widget-title widgettitle">Windpower Engineering &#038; Development Digital Edition Archive</h4>
876<div class="textwidget custom-html-widget"><div id="digital" style="padding: 0 15px 10px 15px;">
877  <a href="/category/digital-issues/">
878    <img align="left" style="padding:0 10px; width: 100px;" src="https://www.windpowerengineering.com/wp-content/uploads/2022/03/WPE-March-2022-cover-300.jpg" alt="Digital Edition" />
879  </a>
880  <p>
881    <a href="/category/digital-issues/" style="text-decoration: underline;">Explore the full archive of digital issues</a> of <em>Windpower Engineering &amp; Development</em>, presented in a high-quality, user-friendly format. Access current and past editions, clip, share, and download valuable content from the industry’s leading wind power engineering resource.
882  </p>
883  <div style="text-align: center; height: 60px; width: 136px; margin: 0 auto;">
884    <div>
885      <a href="/category/digital-issues/" target="_parent" rel="nofollow">
886        <button class="greenbutton" style="background-color: #80a0c1; color: white; font-weight: bold; border: none; padding: 10px; font-size: 16px; cursor: pointer;">Back Issues</button>
887      </a>
888    </div>
889  </div>
890</div>
891
892</div></div></section>
893<section id="custom_html-25" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget">				
894<div id='div-gpt-wpe_sidebar2'>
895	
895<script>
896    googletag.cmd.push(function() { googletag.display('div-gpt-wpe_sidebar2'); });
897  </script>
897
898</div>
899</div></div></section>
900</aside></div></div></div><div class="footer-socials"><div class="wrap"><label style="color:#ffffff">Connect with Windpower Engineering & Development </label> <a href="https://www.facebook.com/WindpowerEngineering" target="_blank" rel="noopener noreferrer"><i class="icon-facebook"></i></a><a href="https://twitter.com/Windpower_Eng" target="_blank" rel="noopener noreferrer"><i class="icon-twitter"></i></a><a href="https://www.linkedin.com/company/windpower-engineering-development/" target="_blank" rel="noopener noreferrer"><i class="icon-linkedin"></i></a><a href="https://www.youtube.com/windpowerengineering" target="_blank" rel="noopener noreferrer"><i class="icon-youtube"></i></a></div></div><footer class="site-footer"><div class="wrap"><div class="row"><div class="footer-logo"><a href="https://www.windpowerengineering.com">Windpower Engineering &amp; Development</a></div><div class="footer-menu"><div class="menu-footer-menu-container"><ul id="menu-footer-menu" class="menu"><li id="menu-item-38344" class="menu-item"><a href="/recent-windpower-articles/">Wind Articles</a></li>
901<li id="menu-item-48883" class="menu-item"><a href="https://www.solarpowerworldonline.com/">Solar Power World</a></li>
902<li id="menu-item-42305" class="menu-item"><a target="_blank" href="/windpower-engineering-development-magazine-subscription-form/">Subscribe to Windpower Engineering</a></li>
903<li id="menu-item-45015" class="menu-item"><a href="https://www.windpowerengineering.com/meetourteam/">About Us/Contact Us</a></li>
904</ul></div></div><div class="footer-copyright"><p>Copyright &copy; 2026 Arrowfly LLC. All Rights Reserved. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of Arrowfly<br /> <a href="http://www.arrowfly.com/privacy-policy/" target="_blank">Privacy Policy</a>  | <a href="https://www.mediakit.windpowerengineering.com/" target="_blank">Advertising</a> </p></div></div></div></footer></div><div class="site-search"><div class="wrap"><div class="search-inner"><h2>Search Windpower Engineering & Development </h2><form class="search-form" method="get" action="https://www.windpowerengineering.com/" role="search"><input class="search-form-input" type="search" name="s" id="searchform-1" placeholder="Search this website"><input class="search-form-submit" type="submit" value="GO"><meta content="https://www.windpowerengineering.com/?s={s}"></form></div></div></div>
904<script type="speculationrules">
905{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/ThemeWTWH/*","/wp-content/themes/genesis/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
906</script>
906
907<!-- Google Tag Manager (noscript) Global -->
vendor: 68 bytes, lines 907-908
907
908<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
908GTM-MMC9PJ9
vendor: 83 bytes, lines 908-909
908"
909height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
910<!-- End Google Tag Manager (noscript) -->
911
912<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 912-913
912
913<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
913GTM-5WXXHJ7
vendor: 83 bytes, lines 913-914
913"
914height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
915<!-- End Google Tag Manager (noscript) -->
916
917
918
919<div id='div-gpt-wpe_interstitial'>
920	
920<script>
921    googletag.cmd.push(function() { googletag.display('div-gpt-wpe_interstitial'); });
922  </script>
922
923</div>
924				
925<div id='div-gpt-wpe_wallpaper'>
926	
926<script>
927    googletag.cmd.push(function() { googletag.display('div-gpt-wpe_wallpaper'); });
928  </script>
928
929</div>
930
931<div id='div-gpt-wpe_allstreamflex'>
932	
932<script>
933    googletag.cmd.push(function() { googletag.display('div-gpt-wpe_allstreamflex'); });
934  </script>
934
935</div>
936
937				
938<div id='div-gpt-wpe_allstreamprelude'>
939	
939<script>
940    googletag.cmd.push(function() { googletag.display('div-gpt-wpe_allstreamprelude'); });
941  </script>
941
942</div>
943
944<div id="sidr-mobile-menu" class="sidr right"><a class="sidr-menu-close" href="#"><i class="icon-close"></i></a><div class="menu-main-top-container"><ul id="menu-main-top-1" class="menu"><li class="home menu-item"><a href="https://www.windpowerengineering.com/">Home</a></li>
945<li class="menu-item menu-item-has-children"><a href="/recent-windpower-articles/">Articles</a>
946<ul class="sub-menu">
947	<li class="menu-item"><a href="https://www.windpowerengineering.com/recent-windpower-articles/">Most recent posts</a></li>
948	<li class="menu-item"><a href="https://www.windpowerengineering.com/category/news/">News</a></li>
949	<li class="menu-item"><a href="https://www.windpowerengineering.com/category/featured/">Featured</a></li>
950</ul>
951</li>
952<li class="menu-item menu-item-has-children"><a>Resources</a>
953<ul class="sub-menu">
954	<li class="menu-item"><a href="https://www.windpowerengineering.com/category/featured/digital-issues/">Digital issues</a></li>
955	<li class="menu-item"><a href="https://www.windpowerengineering.com/category/featured/podcasts/">Podcasts</a></li>
956	<li class="menu-item"><a href="/suppliers/">Suppliers</a></li>
957	<li class="menu-item"><a target="_blank" href="https://gateway.on24.com/wcc/experience/elitewtwhmedia/2927718/4415917/windpower-engineering-development">Webinars</a></li>
958	<li class="menu-item"><a href="https://www.windpowerengineering.com/wind-power-events/">Events</a></li>
959</ul>
960</li>
961<li class="menu-item"><a href="https://www.windpowerengineering.com/windpower-videos/">Videos</a></li>
962<li class="menu-item menu-item-has-children"><a target="_blank" href="https://leadership.solarpowerworldonline.com/">2025 Leadership</a>
963<ul class="sub-menu">
964	<li class="menu-item"><a target="_blank" href="https://leadership.solarpowerworldonline.com/2024-winners/">2024 Winners</a></li>
965	<li class="menu-item"><a href="https://www.windpowerengineering.com/2023-leadership-in-wind-energy/">2023 Winners</a></li>
966	<li class="menu-item"><a href="https://www.windpowerengineering.com/2022-leadership-in-wind-energy-winners/">2022 Winners</a></li>
967</ul>
968</li>
969<li class="menu-item"><a href="/windpower-engineering-development-magazine-subscription-form">Magazine</a></li>
970<li class="menu-item"><a target="_blank" href="https://www.mediakit.windpowerengineering.com/">Advertise</a></li>
971<li class="site-header--subscribe menu-item"><a href="/subscribe-to-newsletter/">Subscribe</a></li>
972</ul></div></div></div>
973		
973<script type="text/html" id="tmpl-media-frame">
974		<div class="media-frame-title" id="media-frame-title"></div>
975		<h2 class="media-frame-menu-heading">Actions</h2>
976		<button type="button" class="button button-link media-frame-menu-toggle" aria-expanded="false">
977			Menu			<span class="dashicons dashicons-arrow-down" aria-hidden="true"></span>
978		</button>
979		<div class="media-frame-menu"></div>
980		<div class="media-frame-tab-panel">
981			<div class="media-frame-router"></div>
982			<div class="media-frame-content"></div>
983		</div>
984		<h2 class="media-frame-actions-heading screen-reader-text">
985		Selected media actions		</h2>
986		<div class="media-frame-toolbar"></div>
987		<div class="media-frame-uploader"></div>
988	</script>
988
989
990		
990<script type="text/html" id="tmpl-media-modal">
991		<div id="wp-media-modal" tabindex="0" class="media-modal wp-core-ui" role="dialog" aria-labelledby="media-frame-title">
992			<# if ( data.hasCloseButton ) { #>
993				<button type="button" class="media-modal-close"><span class="media-modal-icon" aria-hidden="true"></span><span class="screen-reader-text">
994					Close dialog				</span></button>
995			<# } #>
996			<div class="media-modal-content" role="document"></div>
997		</div>
998		<div class="media-modal-backdrop"></div>
999	</script>
999
1000
1001		
1001<script type="text/html" id="tmpl-uploader-window">
1002		<div class="uploader-window-content">
1003			<div class="uploader-editor-title">Drop files to upload</div>
1004		</div>
1005	</script>
1005
1006
1007		
1007<script type="text/html" id="tmpl-uploader-editor">
1008		<div class="uploader-editor-content">
1009			<div class="uploader-editor-title">Drop files to upload</div>
1010		</div>
1011	</script>
1011
1012
1013		
1013<script type="text/html" id="tmpl-uploader-inline">
1014		<# var messageClass = data.message ? 'has-upload-message' : 'no-upload-message'; #>
1015		<# if ( data.canClose ) { #>
1016		<button class="close dashicons dashicons-no"><span class="screen-reader-text">
1017			Close uploader		</span></button>
1018		<# } #>
1019		<div class="uploader-inline-content {{ messageClass }}">
1020		<# if ( data.message ) { #>
1021			<h2 class="upload-message">{{ data.message }}</h2>
1022		<# } #>
1023					<div class="upload-ui">
1024				<h2 class="upload-instructions drop-instructions">Drop files to upload</h2>
1025				<p class="upload-instructions drop-instructions">or</p>
1026				<button type="button" class="browser button button-hero" aria-describedby="post-upload-info">Select Files</button>
1027			</div>
1028
1029			<div class="upload-inline-status"></div>
1030
1031			<div class="post-upload-ui" id="post-upload-info">
1032				
1033				<p class="max-upload-size">
1034				Maximum upload file size: 50 MB.				</p>
1035
1036				<# if ( data.suggestedWidth && data.suggestedHeight ) { #>
1037					<p class="suggested-dimensions">
1038						Suggested image dimensions: {{data.suggestedWidth}} by {{data.suggestedHeight}} pixels.					</p>
1039				<# } #>
1040
1041							</div>
1042				</div>
1043	</script>
1043
1044
1045		
1045<script type="text/html" id="tmpl-media-library-view-switcher">
1046		<a href="https://www.windpowerengineering.com/wp-admin/upload.php?mode=list" class="view-list">
1047			<span class="screen-reader-text">
1048				List view			</span>
1049		</a>
1050		<a href="https://www.windpowerengineering.com/wp-admin/upload.php?mode=grid" class="view-grid current" aria-current="page">
1051			<span class="screen-reader-text">
1052				Grid view			</span>
1053		</a>
1054	</script>
1054
1055
1056		
1056<script type="text/html" id="tmpl-uploader-status">
1057		<h2>Uploading</h2>
1058
1059		<div class="media-progress-bar"><div></div></div>
1060		<div class="upload-details">
1061			<span class="upload-count">
1062				<span class="upload-index"></span> / <span class="upload-total"></span>
1063			</span>
1064			<span class="upload-detail-separator">&ndash;</span>
1065			<span class="upload-filename"></span>
1066		</div>
1067		<div class="upload-errors"></div>
1068		<button type="button" class="button upload-dismiss-errors">Dismiss errors</button>
1069	</script>
1069
1070
1071		
1071<script type="text/html" id="tmpl-uploader-status-error">
1072		<span class="upload-error-filename word-wrap-break-word">{{{ data.filename }}}</span>
1073		<span class="upload-error-message">{{ data.message }}</span>
1074	</script>
1074
1075
1076		
1076<script type="text/html" id="tmpl-edit-attachment-frame">
1077		<div class="edit-media-header">
1078			<button class="left dashicons"<# if ( ! data.hasPrevious ) { #> disabled<# } #>><span class="screen-reader-text">Edit previous media item</span></button>
1079			<button class="right dashicons"<# if ( ! data.hasNext ) { #> disabled<# } #>><span class="screen-reader-text">Edit next media item</span></button>
1080			<button type="button" class="media-modal-close"><span class="media-modal-icon" aria-hidden="true"></span><span class="screen-reader-text">Close dialog</span></button>
1081		</div>
1082		<div class="media-frame-title"></div>
1083		<div class="media-frame-content"></div>
1084	</script>
1084
1085
1086		
1086<script type="text/html" id="tmpl-attachment-details-two-column">
1087		<div class="attachment-media-view {{ data.orientation }}">
1088						<h2 class="screen-reader-text">Attachment Preview</h2>
1089			<div class="thumbnail thumbnail-{{ data.type }}">
1090				<# if ( data.uploading ) { #>
1091					<div class="media-progress-bar"><div></div></div>
1092				<# } else if ( data.sizes && data.sizes.full ) { #>
1093					<img class="details-image" src="{{ data.sizes.full.url }}" draggable="false" alt="" />
1094				<# } else if ( data.sizes && data.sizes.large ) { #>
1095					<img class="details-image" src="{{ data.sizes.large.url }}" draggable="false" alt="" />
1096				<# } else if ( -1 === jQuery.inArray( data.type, [ 'audio', 'video' ] ) ) { #>
1097					<img class="details-image icon" src="{{ data.icon }}" draggable="false" alt="" />
1098				<# } #>
1099
1100				<# if ( 'audio' === data.type ) { #>
1101				<div class="wp-media-wrapper wp-audio">
1102					<audio crossorigin="anonymous" style="visibility: hidden" controls class="wp-audio-shortcode" width="100%" preload="none">
1103						<source type="{{ data.mime }}" src="{{ data.url }}" />
1104					</audio>
1105				</div>
1106				<# } else if ( 'video' === data.type ) {
1107					var w_rule = '';
1108					if ( data.width ) {
1109						w_rule = 'width: ' + data.width + 'px;';
1110					} else if ( wp.media.view.settings.contentWidth ) {
1111						w_rule = 'width: ' + wp.media.view.settings.contentWidth + 'px;';
1112					}
1113				#>
1114				<div style="{{ w_rule }}" class="wp-media-wrapper wp-video">
1115					<video crossorigin="anonymous" controls="controls" class="wp-video-shortcode" preload="metadata"
1116						<# if ( data.width ) { #>width="{{ data.width }}"<# } #>
1117						<# if ( data.height ) { #>height="{{ data.height }}"<# } #>
1118						<# if ( data.image && data.image.src !== data.icon ) { #>poster="{{ data.image.src }}"<# } #>>
1119						<source type="{{ data.mime }}" src="{{ data.url }}" />
1120					</video>
1121				</div>
1122				<# } #>
1123
1124				<div class="attachment-actions">
1125					<# if ( 'image' === data.type && ! data.uploading && data.sizes && data.can.save ) { #>
1126					<button type="button" class="button edit-attachment">Edit Image</button>
1127					<# } else if ( 'pdf' === data.subtype && data.sizes ) { #>
1128					<p>Document Preview</p>
1129					<# } #>
1130				</div>
1131			</div>
1132		</div>
1133		<div class="attachment-info">
1134			<span class="settings-save-status" role="status">
1135				<span class="spinner"></span>
1136				<span class="saved">Saved.</span>
1137			</span>
1138			<div class="details">
1139				<h2 class="screen-reader-text">
1140					Details				</h2>
1141				<div class="uploaded"><strong>Uploaded on:</strong> {{ data.dateFormatted }}</div>
1142				<div class="uploaded-by word-wrap-break-word">
1143					<strong>Uploaded by:</strong>
1144						<# if ( data.authorLink ) { #>
1145							<a href="{{ data.authorLink }}">{{ data.authorName }}</a>
1146						<# } else { #>
1147							{{ data.authorName }}
1148						<# } #>
1149				</div>
1150				<# if ( data.uploadedToTitle ) { #>
1151					<div class="uploaded-to">
1152						<strong>Uploaded to:</strong>
1153						<# if ( data.uploadedToLink ) { #>
1154							<a href="{{ data.uploadedToLink }}">{{ data.uploadedToTitle }}</a>
1155						<# } else { #>
1156							{{ data.uploadedToTitle }}
1157						<# } #>
1158					</div>
1159				<# } #>
1160				<div class="filename"><strong>File name:</strong> {{ data.filename }}</div>
1161				<div class="file-type"><strong>File type:</strong> {{ data.mime }}</div>
1162				<div class="file-size"><strong>File size:</strong> {{ data.filesizeHumanReadable }}</div>
1163				<# if ( 'image' === data.type && ! data.uploading ) { #>
1164					<# if ( data.width && data.height ) { #>
1165						<div class="dimensions"><strong>Dimensions:</strong>
1166							{{ data.width }} by {{ data.height }} pixels						</div>
1167					<# } #>
1168
1169					<# if ( data.originalImageURL && data.originalImageName ) { #>
1170						<div class="word-wrap-break-word">
1171							<strong>Original image:</strong>
1172							<a href="{{ data.originalImageURL }}">{{data.originalImageName}}</a>
1173						</div>
1174					<# } #>
1175				<# } #>
1176
1177				<# if ( data.fileLength && data.fileLengthHumanReadable ) { #>
1178					<div class="file-length"><strong>Length:</strong>
1179						<span aria-hidden="true">{{ data.fileLengthHumanReadable }}</span>
1180						<span class="screen-reader-text">{{ data.fileLengthHumanReadable }}</span>
1181					</div>
1182				<# } #>
1183
1184				<# if ( 'audio' === data.type && data.meta.bitrate ) { #>
1185					<div class="bitrate">
1186						<strong>Bitrate:</strong> {{ Math.round( data.meta.bitrate / 1000 ) }}kb/s
1187						<# if ( data.meta.bitrate_mode ) { #>
1188						{{ ' ' + data.meta.bitrate_mode.toUpperCase() }}
1189						<# } #>
1190					</div>
1191				<# } #>
1192
1193				<# if ( data.mediaStates ) { #>
1194					<div class="media-states"><strong>Used as:</strong> {{ data.mediaStates }}</div>
1195				<# } #>
1196
1197				<div class="compat-meta">
1198					<# if ( data.compat && data.compat.meta ) { #>
1199						{{{ data.compat.meta }}}
1200					<# } #>
1201				</div>
1202			</div>
1203
1204			<div class="settings">
1205				<# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #>
1206				<# if ( 'image' === data.type ) { #>
1207					<span class="setting alt-text has-description" data-setting="alt">
1208						<label for="attachment-details-two-column-alt-text" class="name">Alternative Text</label>
1209						<textarea id="attachment-details-two-column-alt-text" aria-describedby="alt-text-description" {{ maybeReadOnly }}>{{ data.alt }}</textarea>
1210					</span>
1211					<p class="description" id="alt-text-description"><a href="https://www.w3.org/WAI/tutorials/images/decision-tree/" target="_blank">Learn how to describe the purpose of the image<span class="screen-reader-text"> (opens in a new tab)</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>. Leave empty if the image is purely decorative.</p>
1212				<# } #>
1213								<span class="setting" data-setting="title">
1214					<label for="attachment-details-two-column-title" class="name">Title</label>
1215					<input type="text" id="attachment-details-two-column-title" value="{{ data.title }}" {{ maybeReadOnly }} />
1216				</span>
1217								<# if ( 'audio' === data.type ) { #>
1218								<span class="setting" data-setting="artist">
1219					<label for="attachment-details-two-column-artist" class="name">Artist</label>
1220					<input type="text" id="attachment-details-two-column-artist" value="{{ data.artist || data.meta.artist || '' }}" />
1221				</span>
1222								<span class="setting" data-setting="album">
1223					<label for="attachment-details-two-column-album" class="name">Album</label>
1224					<input type="text" id="attachment-details-two-column-album" value="{{ data.album || data.meta.album || '' }}" />
1225				</span>
1226								<# } #>
1227				<span class="setting" data-setting="caption">
1228					<# if ( 'image' === data.type ) { #>
1229					<label for="attachment-details-two-column-caption" class="name">Image Caption</label>
1230					<# } else { #>
1231					<label for="attachment-details-two-column-caption" class="name">Short Description</label>
1232					<# } #>
1233					<textarea id="attachment-details-two-column-caption" {{ maybeReadOnly }}>{{ data.caption }}</textarea>
1234				</span>
1235				<span class="setting" data-setting="description">
1236					<label for="attachment-details-two-column-description" class="name">Description</label>
1237					<textarea id="attachment-details-two-column-description" {{ maybeReadOnly }}>{{ data.description }}</textarea>
1238				</span>
1239				<span class="setting" data-setting="url">
1240					<label for="attachment-details-two-column-copy-link" class="name">File URL:</label>
1241					<input type="text" class="attachment-details-copy-link ltr" id="attachment-details-two-column-copy-link" value="{{ data.url }}" readonly />
1242					<span class="copy-to-clipboard-container">
1243						<button type="button" class="button button-small copy-attachment-url" data-clipboard-target="#attachment-details-two-column-copy-link">Copy URL to clipboard</button>
1244						<span class="success hidden" aria-hidden="true">Copied!</span>
1245					</span>
1246				</span>
1247				<div class="attachment-compat"></div>
1248			</div>
1249
1250			<div class="actions">
1251				<# if ( data.link ) { #>
1252										<a class="view-attachment" href="{{ data.link }}">View attachment page</a>
1253				<# } #>
1254				<# if ( data.can.save ) { #>
1255					<# if ( data.link ) { #>
1256						<span class="links-separator">|</span>
1257					<# } #>
1258					<a href="{{ data.editLink }}">Edit more details</a>
1259				<# } #>
1260				<# if ( data.can.save && data.link ) { #>
1261					<span class="links-separator">|</span>
1262					<a href="{{ data.url }}" download>Download file</a>
1263				<# } #>
1264				<# if ( ! data.uploading && data.can.remove ) { #>
1265					<# if ( data.link || data.can.save ) { #>
1266						<span class="links-separator">|</span>
1267					<# } #>
1268											<button type="button" class="button-link delete-attachment">Delete permanently</button>
1269									<# } #>
1270			</div>
1271		</div>
1272	</script>
1272
1273
1274		
1274<script type="text/html" id="tmpl-attachment">
1275		<div class="attachment-preview js--select-attachment type-{{ data.type }} subtype-{{ data.subtype }} {{ data.orientation }}">
1276			<div class="thumbnail">
1277				<# if ( data.uploading ) { #>
1278					<div class="media-progress-bar"><div style="width: {{ data.percent }}%"></div></div>
1279				<# } else if ( 'image' === data.type && data.size && data.size.url ) { #>
1280					<div class="centered">
1281						<img src="{{ data.size.url }}" draggable="false" alt="" />
1282					</div>
1283				<# } else { #>
1284					<div class="centered">
1285						<# if ( data.image && data.image.src && data.image.src !== data.icon ) { #>
1286							<img src="{{ data.image.src }}" class="thumbnail" draggable="false" alt="" />
1287						<# } else if ( data.sizes ) {
1288								if ( data.sizes.medium ) { #>
1289									<img src="{{ data.sizes.medium.url }}" class="thumbnail" draggable="false" alt="" />
1290								<# } else { #>
1291									<img src="{{ data.sizes.full.url }}" class="thumbnail" draggable="false" alt="" />
1292								<# } #>
1293						<# } else { #>
1294							<img src="{{ data.icon }}" class="icon" draggable="false" alt="" />
1295						<# } #>
1296					</div>
1297					<div class="filename">
1298						<div>{{ data.filename }}</div>
1299					</div>
1300				<# } #>
1301			</div>
1302			<# if ( data.buttons.close ) { #>
1303				<button type="button" class="button-link attachment-close"><span class="media-modal-icon" aria-hidden="true"></span><span class="screen-reader-text">
1304					Remove				</span></button>
1305			<# } #>
1306		</div>
1307		<# if ( data.buttons.check ) { #>
1308			<button type="button" class="check" tabindex="-1"><span class="media-modal-icon" aria-hidden="true"></span><span class="screen-reader-text">
1309				Deselect			</span></button>
1310		<# } #>
1311		<#
1312		var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly';
1313		if ( data.describe ) {
1314			if ( 'image' === data.type ) { #>
1315				<input type="text" value="{{ data.caption }}" class="describe" data-setting="caption"
1316					aria-label="Caption"
1317					placeholder="Caption&hellip;" {{ maybeReadOnly }} />
1318			<# } else { #>
1319				<input type="text" value="{{ data.title }}" class="describe" data-setting="title"
1320					<# if ( 'video' === data.type ) { #>
1321						aria-label="Video title"
1322						placeholder="Video title&hellip;"
1323					<# } else if ( 'audio' === data.type ) { #>
1324						aria-label="Audio title"
1325						placeholder="Audio title&hellip;"
1326					<# } else { #>
1327						aria-label="Media title"
1328						placeholder="Media title&hellip;"
1329					<# } #> {{ maybeReadOnly }} />
1330			<# }
1331		} #>
1332	</script>
1332
1333
1334		
1334<script type="text/html" id="tmpl-attachment-details">
1335		<h2>
1336			Attachment Details			<span class="settings-save-status" role="status">
1337				<span class="spinner"></span>
1338				<span class="saved">Saved.</span>
1339			</span>
1340		</h2>
1341		<div class="attachment-info">
1342
1343			<# if ( 'audio' === data.type ) { #>
1344				<div class="wp-media-wrapper wp-audio">
1345					<audio crossorigin="anonymous" style="visibility: hidden" controls class="wp-audio-shortcode" width="100%" preload="none">
1346						<source type="{{ data.mime }}" src="{{ data.url }}" />
1347					</audio>
1348				</div>
1349			<# } else if ( 'video' === data.type ) {
1350				var w_rule = '';
1351				if ( data.width ) {
1352					w_rule = 'width: ' + data.width + 'px;';
1353				} else if ( wp.media.view.settings.contentWidth ) {
1354					w_rule = 'width: ' + wp.media.view.settings.contentWidth + 'px;';
1355				}
1356			#>
1357				<div style="{{ w_rule }}" class="wp-media-wrapper wp-video">
1358					<video crossorigin="anonymous" controls="controls" class="wp-video-shortcode" preload="metadata"
1359						<# if ( data.width ) { #>width="{{ data.width }}"<# } #>
1360						<# if ( data.height ) { #>height="{{ data.height }}"<# } #>
1361						<# if ( data.image && data.image.src !== data.icon ) { #>poster="{{ data.image.src }}"<# } #>>
1362						<source type="{{ data.mime }}" src="{{ data.url }}" />
1363					</video>
1364				</div>
1365			<# } else { #>
1366				<div class="thumbnail thumbnail-{{ data.type }}">
1367					<# if ( data.uploading ) { #>
1368						<div class="media-progress-bar"><div></div></div>
1369					<# } else if ( 'image' === data.type && data.size && data.size.url ) { #>
1370						<img src="{{ data.size.url }}" draggable="false" alt="" />
1371					<# } else { #>
1372						<img src="{{ data.icon }}" class="icon" draggable="false" alt="" />
1373					<# } #>
1374				</div>
1375			<# } #>
1376
1377			<div class="details">
1378				<div class="filename">{{ data.filename }}</div>
1379				<div class="uploaded">{{ data.dateFormatted }}</div>
1380
1381				<div class="file-size">{{ data.filesizeHumanReadable }}</div>
1382				<# if ( 'image' === data.type && ! data.uploading ) { #>
1383					<# if ( data.width && data.height ) { #>
1384						<div class="dimensions">
1385							{{ data.width }} by {{ data.height }} pixels						</div>
1386					<# } #>
1387
1388					<# if ( data.originalImageURL && data.originalImageName ) { #>
1389						<div class="word-wrap-break-word">
1390							Original image:							<a href="{{ data.originalImageURL }}">{{data.originalImageName}}</a>
1391						</div>
1392					<# } #>
1393
1394					<# if ( data.can.save && data.sizes ) { #>
1395						<a class="edit-attachment" href="{{ data.editLink }}&amp;image-editor" target="_blank">Edit Image</a>
1396					<# } #>
1397				<# } #>
1398
1399				<# if ( data.fileLength && data.fileLengthHumanReadable ) { #>
1400					<div class="file-length">Length:						<span aria-hidden="true">{{ data.fileLengthHumanReadable }}</span>
1401						<span class="screen-reader-text">{{ data.fileLengthHumanReadable }}</span>
1402					</div>
1403				<# } #>
1404
1405				<# if ( data.mediaStates ) { #>
1406					<div class="media-states"><strong>Used as:</strong> {{ data.mediaStates }}</div>
1407				<# } #>
1408
1409				<# if ( ! data.uploading && data.can.remove ) { #>
1410											<button type="button" class="button-link delete-attachment">Delete permanently</button>
1411									<# } #>
1412
1413				<div class="compat-meta">
1414					<# if ( data.compat && data.compat.meta ) { #>
1415						{{{ data.compat.meta }}}
1416					<# } #>
1417				</div>
1418			</div>
1419		</div>
1420		<# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #>
1421		<# if ( 'image' === data.type ) { #>
1422			<span class="setting alt-text has-description" data-setting="alt">
1423				<label for="attachment-details-alt-text" class="name">Alt Text</label>
1424				<textarea id="attachment-details-alt-text" aria-describedby="alt-text-description" {{ maybeReadOnly }}>{{ data.alt }}</textarea>
1425			</span>
1426			<p class="description" id="alt-text-description"><a href="https://www.w3.org/WAI/tutorials/images/decision-tree/" target="_blank">Learn how to describe the purpose of the image<span class="screen-reader-text"> (opens in a new tab)</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>. Leave empty if the image is purely decorative.</p>
1427		<# } #>
1428				<span class="setting" data-setting="title">
1429			<label for="attachment-details-title" class="name">Title</label>
1430			<input type="text" id="attachment-details-title" value="{{ data.title }}" {{ maybeReadOnly }} />
1431		</span>
1432				<# if ( 'audio' === data.type ) { #>
1433				<span class="setting" data-setting="artist">
1434			<label for="attachment-details-artist" class="name">Artist</label>
1435			<input type="text" id="attachment-details-artist" value="{{ data.artist || data.meta.artist || '' }}" />
1436		</span>
1437				<span class="setting" data-setting="album">
1438			<label for="attachment-details-album" class="name">Album</label>
1439			<input type="text" id="attachment-details-album" value="{{ data.album || data.meta.album || '' }}" />
1440		</span>
1441				<# } #>
1442		<span class="setting" data-setting="caption">
1443			<# if ( 'image' === data.type ) { #>
1444			<label for="attachment-details-caption" class="name">Image Caption</label>
1445			<# } else { #>
1446			<label for="attachment-details-caption" class="name">Short Description</label>
1447			<# } #>
1448			<textarea id="attachment-details-caption" {{ maybeReadOnly }}>{{ data.caption }}</textarea>
1449		</span>
1450		<span class="setting" data-setting="description">
1451			<label for="attachment-details-description" class="name">Description</label>
1452			<textarea id="attachment-details-description" {{ maybeReadOnly }}>{{ data.description }}</textarea>
1453		</span>
1454		<span class="setting" data-setting="url">
1455			<label for="attachment-details-copy-link" class="name">File URL:</label>
1456			<input type="text" class="attachment-details-copy-link ltr" id="attachment-details-copy-link" value="{{ data.url }}" readonly />
1457			<div class="copy-to-clipboard-container">
1458				<button type="button" class="button button-small copy-attachment-url" data-clipboard-target="#attachment-details-copy-link">Copy URL to clipboard</button>
1459				<span class="success hidden" aria-hidden="true">Copied!</span>
1460			</div>
1461		</span>
1462	</script>
1462
1463
1464		
1464<script type="text/html" id="tmpl-media-selection">
1465		<div class="selection-info">
1466			<span class="count"></span>
1467			<# if ( data.editable ) { #>
1468				<button type="button" class="button-link edit-selection">Edit Selection</button>
1469			<# } #>
1470			<# if ( data.clearable ) { #>
1471				<button type="button" class="button-link clear-selection">Clear</button>
1472			<# } #>
1473		</div>
1474		<div class="selection-view"></div>
1475	</script>
1475
1476
1477		
1477<script type="text/html" id="tmpl-attachment-display-settings">
1478		<h2>Attachment Display Settings</h2>
1479
1480		<# if ( 'image' === data.type ) { #>
1481			<span class="setting align">
1482				<label for="attachment-display-settings-alignment" class="name">Alignment</label>
1483				<select id="attachment-display-settings-alignment" class="alignment"
1484					data-setting="align"
1485					<# if ( data.userSettings ) { #>
1486						data-user-setting="align"
1487					<# } #>>
1488
1489					<option value="left">
1490						Left					</option>
1491					<option value="center">
1492						Center					</option>
1493					<option value="right">
1494						Right					</option>
1495					<option value="none" selected>
1496						None					</option>
1497				</select>
1498			</span>
1499		<# } #>
1500
1501		<span class="setting">
1502			<label for="attachment-display-settings-link-to" class="name">
1503				<# if ( data.model.canEmbed ) { #>
1504					Embed or Link				<# } else { #>
1505					Link To				<# } #>
1506			</label>
1507			<select id="attachment-display-settings-link-to" class="link-to"
1508				data-setting="link"
1509				<# if ( data.userSettings && ! data.model.canEmbed ) { #>
1510					data-user-setting="urlbutton"
1511				<# } #>>
1512
1513			<# if ( data.model.canEmbed ) { #>
1514				<option value="embed" selected>
1515					Embed Media Player				</option>
1516				<option value="file">
1517			<# } else { #>
1518				<option value="none" selected>
1519					None				</option>
1520				<option value="file">
1521			<# } #>
1522				<# if ( data.model.canEmbed ) { #>
1523					Link to Media File				<# } else { #>
1524					Media File				<# } #>
1525				</option>
1526				<option value="post">
1527				<# if ( data.model.canEmbed ) { #>
1528					Link to Attachment Page				<# } else { #>
1529					Attachment Page				<# } #>
1530				</option>
1531			<# if ( 'image' === data.type ) { #>
1532				<option value="custom">
1533					Custom URL				</option>
1534			<# } #>
1535			</select>
1536		</span>
1537		<span class="setting">
1538			<label for="attachment-display-settings-link-to-custom" class="name">URL</label>
1539			<input type="text" id="attachment-display-settings-link-to-custom" class="link-to-custom" data-setting="linkUrl" />
1540		</span>
1541
1542		<# if ( 'undefined' !== typeof data.sizes ) { #>
1543			<span class="setting">
1544				<label for="attachment-display-settings-size" class="name">Size</label>
1545				<select id="attachment-display-settings-size" class="size" name="size"
1546					data-setting="size"
1547					<# if ( data.userSettings ) { #>
1548						data-user-setting="imgsize"
1549					<# } #>>
1550											<#
1551						var size = data.sizes['thumbnail'];
1552						if ( size ) { #>
1553							<option value="thumbnail" >
1554								Thumbnail &ndash; {{ size.width }} &times; {{ size.height }}
1555							</option>
1556						<# } #>
1557											<#
1558						var size = data.sizes['medium'];
1559						if ( size ) { #>
1560							<option value="medium" >
1561								Medium &ndash; {{ size.width }} &times; {{ size.height }}
1562							</option>
1563						<# } #>
1564											<#
1565						var size = data.sizes['large'];
1566						if ( size ) { #>
1567							<option value="large" >
1568								Large &ndash; {{ size.width }} &times; {{ size.height }}
1569							</option>
1570						<# } #>
1571											<#
1572						var size = data.sizes['full'];
1573						if ( size ) { #>
1574							<option value="full"  selected='selected'>
1575								Full Size &ndash; {{ size.width }} &times; {{ size.height }}
1576							</option>
1577						<# } #>
1578									</select>
1579			</span>
1580		<# } #>
1581	</script>
1581
1582
1583		
1583<script type="text/html" id="tmpl-gallery-settings">
1584		<h2>Gallery Settings</h2>
1585
1586		<span class="setting">
1587			<label for="gallery-settings-link-to" class="name">Link To</label>
1588			<select id="gallery-settings-link-to" class="link-to"
1589				data-setting="link"
1590				<# if ( data.userSettings ) { #>
1591					data-user-setting="urlbutton"
1592				<# } #>>
1593
1594				<option value="post" <# if ( ! wp.media.galleryDefaults.link || 'post' === wp.media.galleryDefaults.link ) {
1595					#>selected="selected"<# }
1596				#>>
1597					Attachment Page				</option>
1598				<option value="file" <# if ( 'file' === wp.media.galleryDefaults.link ) { #>selected="selected"<# } #>>
1599					Media File				</option>
1600				<option value="none" <# if ( 'none' === wp.media.galleryDefaults.link ) { #>selected="selected"<# } #>>
1601					None				</option>
1602			</select>
1603		</span>
1604
1605		<span class="setting">
1606			<label for="gallery-settings-columns" class="name select-label-inline">Columns</label>
1607			<select id="gallery-settings-columns" class="columns" name="columns"
1608				data-setting="columns">
1609									<option value="1" <#
1610						if ( 1 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# }
1611					#>>
1612						1					</option>
1613									<option value="2" <#
1614						if ( 2 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# }
1615					#>>
1616						2					</option>
1617									<option value="3" <#
1618						if ( 3 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# }
1619					#>>
1620						3					</option>
1621									<option value="4" <#
1622						if ( 4 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# }
1623					#>>
1624						4					</option>
1625									<option value="5" <#
1626						if ( 5 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# }
1627					#>>
1628						5					</option>
1629									<option value="6" <#
1630						if ( 6 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# }
1631					#>>
1632						6					</option>
1633									<option value="7" <#
1634						if ( 7 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# }
1635					#>>
1636						7					</option>
1637									<option value="8" <#
1638						if ( 8 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# }
1639					#>>
1640						8					</option>
1641									<option value="9" <#
1642						if ( 9 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# }
1643					#>>
1644						9					</option>
1645							</select>
1646		</span>
1647
1648		<span class="setting">
1649			<input type="checkbox" id="gallery-settings-random-order" data-setting="_orderbyRandom" />
1650			<label for="gallery-settings-random-order" class="checkbox-label-inline">Random Order</label>
1651		</span>
1652
1653		<span class="setting size">
1654			<label for="gallery-settings-size" class="name">Size</label>
1655			<select id="gallery-settings-size" class="size" name="size"
1656				data-setting="size"
1657				<# if ( data.userSettings ) { #>
1658					data-user-setting="imgsize"
1659				<# } #>
1660				>
1661									<option value="thumbnail">
1662						Thumbnail					</option>
1663									<option value="medium">
1664						Medium					</option>
1665									<option value="large">
1666						Large					</option>
1667									<option value="full">
1668						Full Size					</option>
1669							</select>
1670		</span>
1671	</script>
1671
1672
1673		
1673<script type="text/html" id="tmpl-playlist-settings">
1674		<h2>Playlist Settings</h2>
1675
1676		<# var emptyModel = _.isEmpty( data.model ),
1677			isVideo = 'video' === data.controller.get('library').props.get('type'); #>
1678
1679		<span class="setting">
1680			<input type="checkbox" id="playlist-settings-show-list" data-setting="tracklist" <# if ( emptyModel ) { #>
1681				checked="checked"
1682			<# } #> />
1683			<label for="playlist-settings-show-list" class="checkbox-label-inline">
1684				<# if ( isVideo ) { #>
1685				Show Video List				<# } else { #>
1686				Show Tracklist				<# } #>
1687			</label>
1688		</span>
1689
1690		<# if ( ! isVideo ) { #>
1691		<span class="setting">
1692			<input type="checkbox" id="playlist-settings-show-artist" data-setting="artists" <# if ( emptyModel ) { #>
1693				checked="checked"
1694			<# } #> />
1695			<label for="playlist-settings-show-artist" class="checkbox-label-inline">
1696				Show Artist Name in Tracklist			</label>
1697		</span>
1698		<# } #>
1699
1700		<span class="setting">
1701			<input type="checkbox" id="playlist-settings-show-images" data-setting="images" <# if ( emptyModel ) { #>
1702				checked="checked"
1703			<# } #> />
1704			<label for="playlist-settings-show-images" class="checkbox-label-inline">
1705				Show Images			</label>
1706		</span>
1707	</script>
1707
1708
1709		
1709<script type="text/html" id="tmpl-embed-link-settings">
1710		<span class="setting link-text">
1711			<label for="embed-link-settings-link-text" class="name">Link Text</label>
1712			<input type="text" id="embed-link-settings-link-text" class="alignment" data-setting="linkText" />
1713		</span>
1714		<div class="embed-container" style="display: none;">
1715			<div class="embed-preview"></div>
1716		</div>
1717	</script>
1717
1718
1719		
1719<script type="text/html" id="tmpl-embed-image-settings">
1720		<div class="wp-clearfix">
1721			<div class="thumbnail">
1722				<img src="{{ data.model.url }}" draggable="false" alt="" />
1723			</div>
1724		</div>
1725
1726		<span class="setting alt-text has-description">
1727			<label for="embed-image-settings-alt-text" class="name">Alternative Text</label>
1728			<textarea id="embed-image-settings-alt-text" data-setting="alt" aria-describedby="alt-text-description"></textarea>
1729		</span>
1730		<p class="description" id="alt-text-description"><a href="https://www.w3.org/WAI/tutorials/images/decision-tree/" target="_blank">Learn how to describe the purpose of the image<span class="screen-reader-text"> (opens in a new tab)</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>. Leave empty if the image is purely decorative.</p>
1731
1732					<span class="setting caption">
1733				<label for="embed-image-settings-caption" class="name">Caption</label>
1734				<textarea id="embed-image-settings-caption" data-setting="caption"></textarea>
1735			</span>
1736		
1737		<fieldset class="setting-group">
1738			<legend class="name">Align</legend>
1739			<span class="setting align">
1740				<span class="button-group button-large" data-setting="align">
1741					<button class="button" value="left">
1742						Left					</button>
1743					<button class="button" value="center">
1744						Center					</button>
1745					<button class="button" value="right">
1746						Right					</button>
1747					<button class="button active" value="none">
1748						None					</button>
1749				</span>
1750			</span>
1751		</fieldset>
1752
1753		<fieldset class="setting-group">
1754			<legend class="name">Link To</legend>
1755			<span class="setting link-to">
1756				<span class="button-group button-large" data-setting="link">
1757					<button class="button" value="file">
1758						Image URL					</button>
1759					<button class="button" value="custom">
1760						Custom URL					</button>
1761					<button class="button active" value="none">
1762						None					</button>
1763				</span>
1764			</span>
1765			<span class="setting">
1766				<label for="embed-image-settings-link-to-custom" class="name">URL</label>
1767				<input type="text" id="embed-image-settings-link-to-custom" class="link-to-custom" data-setting="linkUrl" />
1768			</span>
1769		</fieldset>
1770	</script>
1770
1771
1772		
1772<script type="text/html" id="tmpl-image-details">
1773		<div class="media-embed">
1774			<div class="embed-media-settings">
1775				<div class="column-settings">
1776					<span class="setting alt-text has-description">
1777						<label for="image-details-alt-text" class="name">Alternative Text</label>
1778						<textarea id="image-details-alt-text" data-setting="alt" aria-describedby="alt-text-description">{{ data.model.alt }}</textarea>
1779					</span>
1780					<p class="description" id="alt-text-description"><a href="https://www.w3.org/WAI/tutorials/images/decision-tree/" target="_blank">Learn how to describe the purpose of the image<span class="screen-reader-text"> (opens in a new tab)</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>. Leave empty if the image is purely decorative.</p>
1781
1782											<span class="setting caption">
1783							<label for="image-details-caption" class="name">Caption</label>
1784							<textarea id="image-details-caption" data-setting="caption">{{ data.model.caption }}</textarea>
1785						</span>
1786					
1787					<h2>Display Settings</h2>
1788					<fieldset class="setting-group">
1789						<legend class="legend-inline">Align</legend>
1790						<span class="setting align">
1791							<span class="button-group button-large" data-setting="align">
1792								<button class="button" value="left">
1793									Left								</button>
1794								<button class="button" value="center">
1795									Center								</button>
1796								<button class="button" value="right">
1797									Right								</button>
1798								<button class="button active" value="none">
1799									None								</button>
1800							</span>
1801						</span>
1802					</fieldset>
1803
1804					<# if ( data.attachment ) { #>
1805						<# if ( 'undefined' !== typeof data.attachment.sizes ) { #>
1806							<span class="setting size">
1807								<label for="image-details-size" class="name">Size</label>
1808								<select id="image-details-size" class="size" name="size"
1809									data-setting="size"
1810									<# if ( data.userSettings ) { #>
1811										data-user-setting="imgsize"
1812									<# } #>>
1813																			<#
1814										var size = data.sizes['thumbnail'];
1815										if ( size ) { #>
1816											<option value="thumbnail">
1817												Thumbnail &ndash; {{ size.width }} &times; {{ size.height }}
1818											</option>
1819										<# } #>
1820																			<#
1821										var size = data.sizes['medium'];
1822										if ( size ) { #>
1823											<option value="medium">
1824												Medium &ndash; {{ size.width }} &times; {{ size.height }}
1825											</option>
1826										<# } #>
1827																			<#
1828										var size = data.sizes['large'];
1829										if ( size ) { #>
1830											<option value="large">
1831												Large &ndash; {{ size.width }} &times; {{ size.height }}
1832											</option>
1833										<# } #>
1834																			<#
1835										var size = data.sizes['full'];
1836										if ( size ) { #>
1837											<option value="full">
1838												Full Size &ndash; {{ size.width }} &times; {{ size.height }}
1839											</option>
1840										<# } #>
1841																		<option value="custom">
1842										Custom Size									</option>
1843								</select>
1844							</span>
1845						<# } #>
1846							<div class="custom-size wp-clearfix<# if ( data.model.size !== 'custom' ) { #> hidden<# } #>">
1847								<span class="custom-size-setting">
1848									<label for="image-details-size-width">Width</label>
1849									<input type="number" id="image-details-size-width" aria-describedby="image-size-desc" data-setting="customWidth" step="1" value="{{ data.model.customWidth }}" />
1850								</span>
1851								<span class="sep" aria-hidden="true">&times;</span>
1852								<span class="custom-size-setting">
1853									<label for="image-details-size-height">Height</label>
1854									<input type="number" id="image-details-size-height" aria-describedby="image-size-desc" data-setting="customHeight" step="1" value="{{ data.model.customHeight }}" />
1855								</span>
1856								<p id="image-size-desc" class="description">Image size in pixels</p>
1857							</div>
1858					<# } #>
1859
1860					<span class="setting link-to">
1861						<label for="image-details-link-to" class="name">Link To</label>
1862						<select id="image-details-link-to" data-setting="link">
1863						<# if ( data.attachment ) { #>
1864							<option value="file">
1865								Media File							</option>
1866							<option value="post">
1867								Attachment Page							</option>
1868						<# } else { #>
1869							<option value="file">
1870								Image URL							</option>
1871						<# } #>
1872							<option value="custom">
1873								Custom URL							</option>
1874							<option value="none">
1875								None							</option>
1876						</select>
1877					</span>
1878					<span class="setting">
1879						<label for="image-details-link-to-custom" class="name">URL</label>
1880						<input type="text" id="image-details-link-to-custom" class="link-to-custom" data-setting="linkUrl" />
1881					</span>
1882
1883					<div class="advanced-section">
1884						<h2><button type="button" class="button-link advanced-toggle">Advanced Options</button></h2>
1885						<div class="advanced-settings hidden">
1886							<div class="advanced-image">
1887								<span class="setting title-text">
1888									<label for="image-details-title-attribute" class="name">Image Title Attribute</label>
1889									<input type="text" id="image-details-title-attribute" data-setting="title" value="{{ data.model.title }}" />
1890								</span>
1891								<span class="setting extra-classes">
1892									<label for="image-details-css-class" class="name">Image CSS Class</label>
1893									<input type="text" id="image-details-css-class" data-setting="extraClasse
1893s" value="{{ data.model.extraClasses }}" />
1894								</span>
1895							</div>
1896							<div class="advanced-link">
1897								<span class="setting link-target">
1898									<input type="checkbox" id="image-details-link-target" data-setting="linkTargetBlank" value="_blank" <# if ( data.model.linkTargetBlank ) { #>checked="checked"<# } #>>
1899									<label for="image-details-link-target" class="checkbox-label">Open link in a new tab</label>
1900								</span>
1901								<span class="setting link-rel">
1902									<label for="image-details-link-rel" class="name">Link Rel</label>
1903									<input type="text" id="image-details-link-rel" data-setting="linkRel" value="{{ data.model.linkRel }}" />
1904								</span>
1905								<span class="setting link-class-name">
1906									<label for="image-details-link-css-class" class="name">Link CSS Class</label>
1907									<input type="text" id="image-details-link-css-class" data-setting="linkClassName" value="{{ data.model.linkClassName }}" />
1908								</span>
1909							</div>
1910						</div>
1911					</div>
1912				</div>
1913				<div class="column-image">
1914					<div class="image">
1915						<img src="{{ data.model.url }}" draggable="false" alt="" />
1916						<# if ( data.attachment && window.imageEdit ) { #>
1917							<div class="actions">
1918								<input type="button" class="edit-attachment button" value="Edit Original" />
1919								<input type="button" class="replace-attachment button" value="Replace" />
1920							</div>
1921						<# } #>
1922					</div>
1923				</div>
1924			</div>
1925		</div>
1926	</script>
1926
1927
1928		
1928<script type="text/html" id="tmpl-image-editor">
1929		<div id="media-head-{{ data.id }}"></div>
1930		<div id="image-editor-{{ data.id }}"></div>
1931	</script>
1931
1932
1933		
1933<script type="text/html" id="tmpl-audio-details">
1934		<# var ext, html5types = {
1935			mp3: wp.media.view.settings.embedMimes.mp3,
1936			ogg: wp.media.view.settings.embedMimes.ogg
1937		}; #>
1938
1939				<div class="media-embed media-embed-details">
1940			<div class="embed-media-settings embed-audio-settings">
1941				<audio crossorigin="anonymous" style="visibility: hidden"
1942	controls
1943	class="wp-audio-shortcode"
1944	width="{{ _.isUndefined( data.model.width ) ? 400 : data.model.width }}"
1945	preload="{{ _.isUndefined( data.model.preload ) ? 'none' : data.model.preload }}"
1946	<#
1947		if ( ! _.isUndefined( data.model.autoplay ) && data.model.autoplay ) {
1948		#> autoplay<#
1949	}
1950		if ( ! _.isUndefined( data.model.loop ) && data.model.loop ) {
1951		#> loop<#
1952	}
1953	#>
1954>
1955	<# if ( ! _.isEmpty( data.model.src ) ) { #>
1956	<source src="{{ data.model.src }}" type="{{ wp.media.view.settings.embedMimes[ data.model.src.split('.').pop() ] }}" />
1957	<# } #>
1958
1959		<# if ( ! _.isEmpty( data.model.mp3 ) ) { #>
1960	<source src="{{ data.model.mp3 }}" type="{{ wp.media.view.settings.embedMimes[ 'mp3' ] }}" />
1961	<# } #>
1962			<# if ( ! _.isEmpty( data.model.ogg ) ) { #>
1963	<source src="{{ data.model.ogg }}" type="{{ wp.media.view.settings.embedMimes[ 'ogg' ] }}" />
1964	<# } #>
1965			<# if ( ! _.isEmpty( data.model.flac ) ) { #>
1966	<source src="{{ data.model.flac }}" type="{{ wp.media.view.settings.embedMimes[ 'flac' ] }}" />
1967	<# } #>
1968			<# if ( ! _.isEmpty( data.model.m4a ) ) { #>
1969	<source src="{{ data.model.m4a }}" type="{{ wp.media.view.settings.embedMimes[ 'm4a' ] }}" />
1970	<# } #>
1971			<# if ( ! _.isEmpty( data.model.wav ) ) { #>
1972	<source src="{{ data.model.wav }}" type="{{ wp.media.view.settings.embedMimes[ 'wav' ] }}" />
1973	<# } #>
1974		</audio>
1975	
1976				<# if ( ! _.isEmpty( data.model.src ) ) {
1977					ext = data.model.src.split('.').pop();
1978					if ( html5types[ ext ] ) {
1979						delete html5types[ ext ];
1980					}
1981				#>
1982				<span class="setting">
1983					<label for="audio-details-source" class="name">URL</label>
1984					<input type="text" id="audio-details-source" readonly data-setting="src" value="{{ data.model.src }}" />
1985					<button type="button" class="button-link remove-setting">Remove audio source</button>
1986				</span>
1987				<# } #>
1988								<# if ( ! _.isEmpty( data.model.mp3 ) ) {
1989					if ( ! _.isUndefined( html5types.mp3 ) ) {
1990						delete html5types.mp3;
1991					}
1992				#>
1993				<span class="setting">
1994					<label for="audio-details-mp3-source" class="name">MP3</label>
1995					<input type="text" id="audio-details-mp3-source" readonly data-setting="mp3" value="{{ data.model.mp3 }}" />
1996					<button type="button" class="button-link remove-setting">Remove audio source</button>
1997				</span>
1998				<# } #>
1999								<# if ( ! _.isEmpty( data.model.ogg ) ) {
2000					if ( ! _.isUndefined( html5types.ogg ) ) {
2001						delete html5types.ogg;
2002					}
2003				#>
2004				<span class="setting">
2005					<label for="audio-details-ogg-source" class="name">OGG</label>
2006					<input type="text" id="audio-details-ogg-source" readonly data-setting="ogg" value="{{ data.model.ogg }}" />
2007					<button type="button" class="button-link remove-setting">Remove audio source</button>
2008				</span>
2009				<# } #>
2010								<# if ( ! _.isEmpty( data.model.flac ) ) {
2011					if ( ! _.isUndefined( html5types.flac ) ) {
2012						delete html5types.flac;
2013					}
2014				#>
2015				<span class="setting">
2016					<label for="audio-details-flac-source" class="name">FLAC</label>
2017					<input type="text" id="audio-details-flac-source" readonly data-setting="flac" value="{{ data.model.flac }}" />
2018					<button type="button" class="button-link remove-setting">Remove audio source</button>
2019				</span>
2020				<# } #>
2021								<# if ( ! _.isEmpty( data.model.m4a ) ) {
2022					if ( ! _.isUndefined( html5types.m4a ) ) {
2023						delete html5types.m4a;
2024					}
2025				#>
2026				<span class="setting">
2027					<label for="audio-details-m4a-source" class="name">M4A</label>
2028					<input type="text" id="audio-details-m4a-source" readonly data-setting="m4a" value="{{ data.model.m4a }}" />
2029					<button type="button" class="button-link remove-setting">Remove audio source</button>
2030				</span>
2031				<# } #>
2032								<# if ( ! _.isEmpty( data.model.wav ) ) {
2033					if ( ! _.isUndefined( html5types.wav ) ) {
2034						delete html5types.wav;
2035					}
2036				#>
2037				<span class="setting">
2038					<label for="audio-details-wav-source" class="name">WAV</label>
2039					<input type="text" id="audio-details-wav-source" readonly data-setting="wav" value="{{ data.model.wav }}" />
2040					<button type="button" class="button-link remove-setting">Remove audio source</button>
2041				</span>
2042				<# } #>
2043				
2044				<# if ( ! _.isEmpty( html5types ) ) { #>
2045				<fieldset class="setting-group">
2046					<legend class="name">Add alternate sources for maximum HTML5 playback</legend>
2047					<span class="setting">
2048						<span class="button-large">
2049						<# _.each( html5types, function (mime, type) { #>
2050							<button class="button add-media-source" data-mime="{{ mime }}">{{ type }}</button>
2051						<# } ) #>
2052						</span>
2053					</span>
2054				</fieldset>
2055				<# } #>
2056
2057				<fieldset class="setting-group">
2058					<legend class="name">Preload</legend>
2059					<span class="setting preload">
2060						<span class="button-group button-large" data-setting="preload">
2061							<button class="button" value="auto">Auto</button>
2062							<button class="button" value="metadata">Metadata</button>
2063							<button class="button active" value="none">None</button>
2064						</span>
2065					</span>
2066				</fieldset>
2067
2068				<span class="setting-group">
2069					<span class="setting checkbox-setting autoplay">
2070						<input type="checkbox" id="audio-details-autoplay" data-setting="autoplay" />
2071						<label for="audio-details-autoplay" class="checkbox-label">Autoplay</label>
2072					</span>
2073
2074					<span class="setting checkbox-setting">
2075						<input type="checkbox" id="audio-details-loop" data-setting="loop" />
2076						<label for="audio-details-loop" class="checkbox-label">Loop</label>
2077					</span>
2078				</span>
2079			</div>
2080		</div>
2081	</script>
2081
2082
2083		
2083<script type="text/html" id="tmpl-video-details">
2084		<# var ext, html5types = {
2085			mp4: wp.media.view.settings.embedMimes.mp4,
2086			ogv: wp.media.view.settings.embedMimes.ogv,
2087			webm: wp.media.view.settings.embedMimes.webm
2088		}; #>
2089
2090				<div class="media-embed media-embed-details">
2091			<div class="embed-media-settings embed-video-settings">
2092				<div class="wp-video-holder">
2093				<#
2094				var w = ! data.model.width || data.model.width > 640 ? 640 : data.model.width,
2095					h = ! data.model.height ? 360 : data.model.height;
2096
2097				if ( data.model.width && w !== data.model.width ) {
2098					h = Math.ceil( ( h * w ) / data.model.width );
2099				}
2100				#>
2101
2102				<#  var w_rule = '', classes = [],
2103		w, h, settings = wp.media.view.settings,
2104		isYouTube = isVimeo = false;
2105
2106	if ( ! _.isEmpty( data.model.src ) ) {
2107		isYouTube = data.model.src.match(/youtube|youtu\.be/);
2108		isVimeo = -1 !== data.model.src.indexOf('vimeo');
2109	}
2110
2111	if ( settings.contentWidth && data.model.width >= settings.contentWidth ) {
2112		w = settings.contentWidth;
2113	} else {
2114		w = data.model.width;
2115	}
2116
2117	if ( w !== data.model.width ) {
2118		h = Math.ceil( ( data.model.height * w ) / data.model.width );
2119	} else {
2120		h = data.model.height;
2121	}
2122
2123	if ( w ) {
2124		w_rule = 'width: ' + w + 'px; ';
2125	}
2126
2127	if ( isYouTube ) {
2128		classes.push( 'youtube-video' );
2129	}
2130
2131	if ( isVimeo ) {
2132		classes.push( 'vimeo-video' );
2133	}
2134
2135#>
2136<div style="{{ w_rule }}" class="wp-video">
2137<video crossorigin="anonymous" controls
2138	class="wp-video-shortcode {{ classes.join( ' ' ) }}"
2139	<# if ( w ) { #>width="{{ w }}"<# } #>
2140	<# if ( h ) { #>height="{{ h }}"<# } #>
2141			<#
2142		if ( ! _.isUndefined( data.model.poster ) && data.model.poster ) {
2143			#> poster="{{ data.model.poster }}"<#
2144		} #>
2145			preload			="{{ _.isUndefined( data.model.preload ) ? 'metadata' : data.model.preload }}"
2146				<#
2147		if ( ! _.isUndefined( data.model.autoplay ) && data.model.autoplay ) {
2148		#> autoplay<#
2149	}
2150		if ( ! _.isUndefined( data.model.loop ) && data.model.loop ) {
2151		#> loop<#
2152	}
2153	#>
2154>
2155	<# if ( ! _.isEmpty( data.model.src ) ) {
2156		if ( isYouTube ) { #>
2157		<source src="{{ data.model.src }}" type="video/youtube" />
2158		<# } else if ( isVimeo ) { #>
2159		<source src="{{ data.model.src }}" type="video/vimeo" />
2160		<# } else { #>
2161		<source src="{{ data.model.src }}" type="{{ settings.embedMimes[ data.model.src.split('.').pop() ] }}" />
2162		<# }
2163	} #>
2164
2165		<# if ( data.model.mp4 ) { #>
2166	<source src="{{ data.model.mp4 }}" type="{{ settings.embedMimes[ 'mp4' ] }}" />
2167	<# } #>
2168		<# if ( data.model.m4v ) { #>
2169	<source src="{{ data.model.m4v }}" type="{{ settings.embedMimes[ 'm4v' ] }}" />
2170	<# } #>
2171		<# if ( data.model.webm ) { #>
2172	<source src="{{ data.model.webm }}" type="{{ settings.embedMimes[ 'webm' ] }}" />
2173	<# } #>
2174		<# if ( data.model.ogv ) { #>
2175	<source src="{{ data.model.ogv }}" type="{{ settings.embedMimes[ 'ogv' ] }}" />
2176	<# } #>
2177		<# if ( data.model.flv ) { #>
2178	<source src="{{ data.model.flv }}" type="{{ settings.embedMimes[ 'flv' ] }}" />
2179	<# } #>
2180		{{{ data.model.content }}}
2181</video>
2182</div>
2183	
2184				<# if ( ! _.isEmpty( data.model.src ) ) {
2185					ext = data.model.src.split('.').pop();
2186					if ( html5types[ ext ] ) {
2187						delete html5types[ ext ];
2188					}
2189				#>
2190				<span class="setting">
2191					<label for="video-details-source" class="name">URL</label>
2192					<input type="text" id="video-details-source" readonly data-setting="src" value="{{ data.model.src }}" />
2193					<button type="button" class="button-link remove-setting">Remove video source</button>
2194				</span>
2195				<# } #>
2196								<# if ( ! _.isEmpty( data.model.mp4 ) ) {
2197					if ( ! _.isUndefined( html5types.mp4 ) ) {
2198						delete html5types.mp4;
2199					}
2200				#>
2201				<span class="setting">
2202					<label for="video-details-mp4-source" class="name">MP4</label>
2203					<input type="text" id="video-details-mp4-source" readonly data-setting="mp4" value="{{ data.model.mp4 }}" />
2204					<button type="button" class="button-link remove-setting">Remove video source</button>
2205				</span>
2206				<# } #>
2207								<# if ( ! _.isEmpty( data.model.m4v ) ) {
2208					if ( ! _.isUndefined( html5types.m4v ) ) {
2209						delete html5types.m4v;
2210					}
2211				#>
2212				<span class="setting">
2213					<label for="video-details-m4v-source" class="name">M4V</label>
2214					<input type="text" id="video-details-m4v-source" readonly data-setting="m4v" value="{{ data.model.m4v }}" />
2215					<button type="button" class="button-link remove-setting">Remove video source</button>
2216				</span>
2217				<# } #>
2218								<# if ( ! _.isEmpty( data.model.webm ) ) {
2219					if ( ! _.isUndefined( html5types.webm ) ) {
2220						delete html5types.webm;
2221					}
2222				#>
2223				<span class="setting">
2224					<label for="video-details-webm-source" class="name">WEBM</label>
2225					<input type="text" id="video-details-webm-source" readonly data-setting="webm" value="{{ data.model.webm }}" />
2226					<button type="button" class="button-link remove-setting">Remove video source</button>
2227				</span>
2228				<# } #>
2229								<# if ( ! _.isEmpty( data.model.ogv ) ) {
2230					if ( ! _.isUndefined( html5types.ogv ) ) {
2231						delete html5types.ogv;
2232					}
2233				#>
2234				<span class="setting">
2235					<label for="video-details-ogv-source" class="name">OGV</label>
2236					<input type="text" id="video-details-ogv-source" readonly data-setting="ogv" value="{{ data.model.ogv }}" />
2237					<button type="button" class="button-link remove-setting">Remove video source</button>
2238				</span>
2239				<# } #>
2240								<# if ( ! _.isEmpty( data.model.flv ) ) {
2241					if ( ! _.isUndefined( html5types.flv ) ) {
2242						delete html5types.flv;
2243					}
2244				#>
2245				<span class="setting">
2246					<label for="video-details-flv-source" class="name">FLV</label>
2247					<input type="text" id="video-details-flv-source" readonly data-setting="flv" value="{{ data.model.flv }}" />
2248					<button type="button" class="button-link remove-setting">Remove video source</button>
2249				</span>
2250				<# } #>
2251								</div>
2252
2253				<# if ( ! _.isEmpty( html5types ) ) { #>
2254				<fieldset class="setting-group">
2255					<legend class="name">Add alternate sources for maximum HTML5 playback</legend>
2256					<span class="setting">
2257						<span class="button-large">
2258						<# _.each( html5types, function (mime, type) { #>
2259							<button class="button add-media-source" data-mime="{{ mime }}">{{ type }}</button>
2260						<# } ) #>
2261						</span>
2262					</span>
2263				</fieldset>
2264				<# } #>
2265
2266				<# if ( ! _.isEmpty( data.model.poster ) ) { #>
2267				<span class="setting">
2268					<label for="video-details-poster-image" class="name">Poster Image</label>
2269					<input type="text" id="video-details-poster-image" readonly data-setting="poster" value="{{ data.model.poster }}" />
2270					<button type="button" class="button-link remove-setting">Remove poster image</button>
2271				</span>
2272				<# } #>
2273
2274				<fieldset class="setting-group">
2275					<legend class="name">Preload</legend>
2276					<span class="setting preload">
2277						<span class="button-group button-large" data-setting="preload">
2278							<button class="button" value="auto">Auto</button>
2279							<button class="button" value="metadata">Metadata</button>
2280							<button class="button active" value="none">None</button>
2281						</span>
2282					</span>
2283				</fieldset>
2284
2285				<span class="setting-group">
2286					<span class="setting checkbox-setting autoplay">
2287						<input type="checkbox" id="video-details-autoplay" data-setting="autoplay" />
2288						<label for="video-details-autoplay" class="checkbox-label">Autoplay</label>
2289					</span>
2290
2291					<span class="setting checkbox-setting">
2292						<input type="checkbox" id="video-details-loop" data-setting="loop" />
2293						<label for="video-details-loop" class="checkbox-label">Loop</label>
2294					</span>
2295				</span>
2296
2297				<span class="setting" data-setting="content">
2298					<#
2299					var content = '';
2300					if ( ! _.isEmpty( data.model.content ) ) {
2301						var tracks = jQuery( data.model.content ).filter( 'track' );
2302						_.each( tracks.toArray(), function( track, index ) {
2303							content += track.outerHTML; #>
2304						<label for="video-details-track-{{ index }}" class="name">Tracks (subtitles, captions, descriptions, chapters, or metadata)</label>
2305						<input class="content-track" type="text" id="video-details-track-{{ index }}" aria-describedby="video-details-track-desc-{{ index }}" value="{{ track.outerHTML }}" />
2306						<span class="description" id="video-details-track-desc-{{ index }}">
2307						The srclang, label, and kind values can be edited to set the video track language and kind.						</span>
2308						<button type="button" class="button-link remove-setting remove-track">Remove video track</button><br />
2309						<# } ); #>
2310					<# } else { #>
2311					<span class="name">Tracks (subtitles, captions, descriptions, chapters, or metadata)</span><br />
2312					<em>There are no associated subtitles.</em>
2313					<# } #>
2314					<textarea class="hidden content-setting">{{ content }}</textarea>
2315				</span>
2316			</div>
2317		</div>
2318	</script>
2318
2319
2320		
2320<script type="text/html" id="tmpl-editor-gallery">
2321		<# if ( data.attachments.length ) { #>
2322			<div class="gallery gallery-columns-{{ data.columns }}">
2323				<# _.each( data.attachments, function( attachment, index ) { #>
2324					<dl class="gallery-item">
2325						<dt class="gallery-icon">
2326							<# if ( attachment.thumbnail ) { #>
2327								<img src="{{ attachment.thumbnail.url }}" width="{{ attachment.thumbnail.width }}" height="{{ attachment.thumbnail.height }}" alt="{{ attachment.alt }}" />
2328							<# } else { #>
2329								<img src="{{ attachment.url }}" alt="{{ attachment.alt }}" />
2330							<# } #>
2331						</dt>
2332						<# if ( attachment.caption ) { #>
2333							<dd class="wp-caption-text gallery-caption">
2334								{{{ data.verifyHTML( attachment.caption ) }}}
2335							</dd>
2336						<# } #>
2337					</dl>
2338					<# if ( index % data.columns === data.columns - 1 ) { #>
2339						<br style="clear: both;" />
2340					<# } #>
2341				<# } ); #>
2342			</div>
2343		<# } else { #>
2344			<div class="wpview-error">
2345				<div class="dashicons dashicons-format-gallery"></div><p>No items found.</p>
2346			</div>
2347		<# } #>
2348	</script>
2348
2349
2350		
2350<script type="text/html" id="tmpl-crop-content">
2351		<img class="crop-image" src="{{ data.url }}" alt="Image crop area preview. Requires mouse interaction." />
2352		<div class="upload-errors"></div>
2353	</script>
2353
2354
2355		
2355<script type="text/html" id="tmpl-site-icon-preview-crop">
2356		<style>
2357			:root{
2358				--site-icon-url: url( "{{ data.url }}" );
2359			}
2360		</style>
2361		<h2>Site Icon Preview</h2>
2362		<p>As an app icon and a browser icon.</p>
2363		<div class="site-icon-preview crop">
2364			<div class="image-preview-wrap app-icon-preview">
2365				<img id="preview-app-icon" src="{{ data.url }}" class="app-icon-preview" alt="Preview as an app icon" />
2366			</div>
2367			<div class="site-icon-preview-browser">
2368				<svg role="img" aria-hidden="true" fill="none" xmlns="http://www.w3.org/2000/svg" class="browser-buttons"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 20a6 6 0 1 1 12 0 6 6 0 0 1-12 0Zm18 0a6 6 0 1 1 12 0 6 6 0 0 1-12 0Zm24-6a6 6 0 1 0 0 12 6 6 0 0 0 0-12Z" /></svg>
2369				<div class="site-icon-preview-tab">
2370					<div class="image-preview-wrap browser">
2371						<img id="preview-favicon" src="{{ data.url }}" class="browser-icon-preview" alt="Preview as a browser icon" />
2372					</div>
2373					<div class="site-icon-preview-site-title" aria-hidden="true"><# print( 'Windpower Engineering &amp; Development' ) #></div>
2374						<svg role="img" aria-hidden="true" fill="none" xmlns="http://www.w3.org/2000/svg" class="close-button">
2375							<path d="M12 13.0607L15.7123 16.773L16.773 15.7123L13.0607 12L16.773 8.28772L15.7123 7.22706L12 10.9394L8.28771 7.22705L7.22705 8.28771L10.9394 12L7.22706 15.7123L8.28772 16.773L12 13.0607Z" />
2376						</svg>
2377					</div>
2378				</div>
2379			</div>
2380		</div>
2381	</script>
2381
2382
2383	
2383<script id="wtwh-ai-search-script-js" src="https://scripts.wtwhmedia.com/developer/ai_search/env/prod/index.js?ver=1790241459"></script>
vendor: 1 bytes, line 2383
2383
2384<script id="thickbox-js-extra">
2385var thickboxL10n = {"next":"Next \u003E","prev":"\u003C Prev","image":"Image","of":"of","close":"Close","noiframes":"This feature requires inline frames. You have iframes disabled or your browser does not support them.","loadingAnimation":"https://www.windpowerengineering.com/wp-includes/js/thickbox/loadingAnimation.gif"};
2386//# sourceURL=thickbox-js-extra
2387</script>
vendor: 1 bytes, line 2387
2387
2388<script id="thickbox-js" src="https://www.windpowerengineering.com/wp-includes/js/thickbox/thickbox.js?ver=3.1-20121105"></script>
vendor: 1 bytes, line 2388
2388
2389<script id="underscore-js" src="https://www.windpowerengineering.com/wp-includes/js/underscore.min.js?ver=1.13.8"></script>
vendor: 1 bytes, line 2389
2389
2390<script id="shortcode-js" src="https://www.windpowerengineering.com/wp-includes/js/shortcode.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2390
2390
2391<script id="media-upload-js" src="https://www.windpowerengineering.com/wp-admin/js/media-upload.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2391
2391
2392<script id="backbone-js" src="https://www.windpowerengineering.com/wp-includes/js/backbone.min.js?ver=1.6.1"></script>
vendor: 1 bytes, line 2392
2392
2393<script id="wp-util-js-extra">
2394var _wpUtilSettings = {"ajax":{"url":"/wp-admin/admin-ajax.php"}};
2395//# sourceURL=wp-util-js-extra
2396</script>
vendor: 1 bytes, line 2396
2396
2397<script id="wp-util-js" src="https://www.windpowerengineering.com/wp-includes/js/wp-util.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2397
2397
2398<script id="wp-backbone-js" src="https://www.windpowerengineering.com/wp-includes/js/wp-backbone.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2398
2398
2399<script id="media-models-js-extra">
2400var _wpMediaModelsL10n = {"settings":{"ajaxurl":"/wp-admin/admin-ajax.php","post":{"id":0}}};
2401//# sourceURL=media-models-js-extra
2402</script>
vendor: 1 bytes, line 2402
2402
2403<script id="media-models-js" src="https://www.windpowerengineering.com/wp-includes/js/media-models.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2403
2403
2404<script id="wp-plupload-js-extra">
2405var pluploadL10n = {"queue_limit_exceeded":"You have attempted to queue too many files.","file_exceeds_size_limit":"%s exceeds the maximum upload size for this site.","zero_byte_file":"This file is empty. Please try another.","invalid_filetype":"This file cannot be processed by the web server.","not_an_image":"This file is not an image. Please try another.","image_memory_exceeded":"Memory exceeded. Please try another smaller file.","image_dimensions_exceeded":"This is larger than the maximum size. Please try another.","default_error":"An error occurred in the upload. Please try again later.","missing_upload_url":"There was a configuration error. Please contact the server administrator.","upload_limit_exceeded":"You may only upload 1 file.","http_error":"Unexpected response from the server. The file may have been uploaded successfully. Check in the Media Library or reload the page.","http_error_image":"The server cannot process the image. This can happen if the server is busy or does not have enough resources to complete the task. Uploading a smaller image may help. Suggested maximum size is 2560 pixels.","upload_failed":"Upload failed.","big_upload_failed":"Please try uploading this file with the %1$sbrowser uploader%2$s.","big_upload_queued":"%s exceeds the maximum upload size for the multi-file uploader when used in your browser.","io_error":"IO error.","security_error":"Security error.","file_cancelled":"File canceled.","upload_stopped":"Upload stopped.","dismiss":"Dismiss","crunching":"Crunching\u2026","deleted":"moved to the Trash.","error_uploading":"\u201c%s\u201d has failed to upload.","unsupported_image":"The server cannot process HEIC images. Convert it to JPEG before uploading.","noneditable_image":"The web server cannot generate responsive image sizes for this image. Convert it to JPEG or PNG before uploading.","file_url_copied":"The file URL has been copied to your clipboard"};
2406var _wpPluploadSettings = {"defaults":{"file_data_name":"async-upload","url":"/wp-admin/async-upload.php","filters":{"max_file_size":"52428800b","mime_types":[{"extensions":"jpg,jpeg,jpe,gif,png,bmp,tiff,tif,webp,avif,ico,heic,heif,heics,heifs,asf,asx,wmv,wmx,wm,avi,divx,flv,mov,qt,mpeg,mpg,mpe,mp4,m4v,ogv,webm,mkv,3gp,3gpp,3g2,3gp2,txt,asc,c,cc,h,srt,csv,tsv,ics,rtx,css,vtt,dfxp,mp3,m4a,m4b,aac,ra,ram,wav,x-wav,ogg,oga,flac,mid,midi,wma,wax,mka,rtf,pdf,class,tar,zip,gz,gzip,rar,7z,psd,xcf,doc,pot,pps,ppt,wri,xla,xls,xlt,xlw,mdb,mpp,docx,docm,dotx,dotm,xlsx,xlsm,xlsb,xltx,xltm,xlam,pptx,pptm,ppsx,ppsm,potx,potm,ppam,sldx,sldm,onetoc,onetoc2,onetmp,onepkg,oxps,xps,odt,odp,ods,odg,odc,odb,odf,wp,wpd,key,numbers,pages"}]},"multipart_params":{"action":"upload-attachment","_wpnonce":"79fcf5c09d"}},"browser":{"mobile":false,"supported":true},"limitExceeded":false};
2407//# sourceURL=wp-plupload-js-extra
2408</script>
vendor: 1 bytes, line 2408
2408
2409<script id="wp-plupload-js" src="https://www.windpowerengineering.com/wp-includes/js/plupload/wp-plupload.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2409
2409
2410<script id="jquery-ui-core-js-before">
2411jQuery.uiBackCompat = true;
2412//# sourceURL=jquery-ui-core-js-before
2413</script>
vendor: 1 bytes, line 2413
2413
2414<script id="jquery-ui-core-js" src="https://www.windpowerengineering.com/wp-includes/js/jquery/ui/core.min.js?ver=1.14.2"></script>
vendor: 1 bytes, line 2414
2414
2415<script id="jquery-ui-mouse-js" src="https://www.windpowerengineering.com/wp-includes/js/jquery/ui/mouse.min.js?ver=1.14.2"></script>
vendor: 1 bytes, line 2415
2415
2416<script id="jquery-ui-sortable-js" src="https://www.windpowerengineering.com/wp-includes/js/jquery/ui/sortable.min.js?ver=1.14.2"></script>
vendor: 1 bytes, line 2416
2416
2417<script id="mediaelement-core-js-before">
2418var mejsL10n = {"language":"en","strings":{"mejs.download-file":"Download File","mejs.install-flash":"You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https://get.adobe.com/flashplayer/","mejs.fullscreen":"Fullscreen","mejs.play":"Play","mejs.pause":"Pause","mejs.time-slider":"Time Slider","mejs.time-help-text":"Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.","mejs.live-broadcast":"Live Broadcast","mejs.volume-help-text":"Use Up/Down Arrow keys to increase or decrease volume.","mejs.unmute":"Unmute","mejs.mute":"Mute","mejs.volume-slider":"Volume Slider","mejs.video-player":"Video Player","mejs.audio-player":"Audio Player","mejs.captions-subtitles":"Captions/Subtitles","mejs.captions-chapters":"Chapters","mejs.none":"None","mejs.afrikaans":"Afrikaans","mejs.albanian":"Albanian","mejs.arabic":"Arabic","mejs.belarusian":"Belarusian","mejs.bulgarian":"Bulgarian","mejs.catalan":"Catalan","mejs.chinese":"Chinese","mejs.chinese-simplified":"Chinese (Simplified)","mejs.chinese-traditional":"Chinese (Traditional)","mejs.croatian":"Croatian","mejs.czech":"Czech","mejs.danish":"Danish","mejs.dutch":"Dutch","mejs.english":"English","mejs.estonian":"Estonian","mejs.filipino":"Filipino","mejs.finnish":"Finnish","mejs.french":"French","mejs.galician":"Galician","mejs.german":"German","mejs.greek":"Greek","mejs.haitian-creole":"Haitian Creole","mejs.hebrew":"Hebrew","mejs.hindi":"Hindi","mejs.hungarian":"Hungarian","mejs.icelandic":"Icelandic","mejs.indonesian":"Indonesian","mejs.irish":"Irish","mejs.italian":"Italian","mejs.japanese":"Japanese","mejs.korean":"Korean","mejs.latvian":"Latvian","mejs.lithuanian":"Lithuanian","mejs.macedonian":"Macedonian","mejs.malay":"Malay","mejs.maltese":"Maltese","mejs.norwegian":"Norwegian","mejs.persian":"Persian","mejs.polish":"Polish","mejs.portuguese":"Portuguese","mejs.romanian":"Romanian","mejs.russian":"Russian","mejs.serbian":"Serbian","mejs.slovak":"Slovak","mejs.slovenian":"Slovenian","mejs.spanish":"Spanish","mejs.swahili":"Swahili","mejs.swedish":"Swedish","mejs.tagalog":"Tagalog","mejs.thai":"Thai","mejs.turkish":"Turkish","mejs.ukrainian":"Ukrainian","mejs.vietnamese":"Vietnamese","mejs.welsh":"Welsh","mejs.yiddish":"Yiddish"}};
2419//# sourceURL=mediaelement-core-js-before
2420</script>
vendor: 1 bytes, line 2420
2420
2421<script id="mediaelement-core-js" src="https://www.windpowerengineering.com/wp-includes/js/mediaelement/mediaelement-and-player.min.js?ver=4.2.17"></script>
vendor: 1 bytes, line 2421
2421
2422<script id="mediaelement-migrate-js" src="https://www.windpowerengineering.com/wp-includes/js/mediaelement/mediaelement-migrate.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2422
2422
2423<script id="mediaelement-js-extra">
2424var _wpmejsSettings = {"pluginPath":"/wp-includes/js/mediaelement/","classPrefix":"mejs-","stretching":"responsive","audioShortcodeLibrary":"mediaelement","videoShortcodeLibrary":"mediaelement"};
2425//# sourceURL=mediaelement-js-extra
2426</script>
vendor: 1 bytes, line 2426
2426
2427<script id="wp-mediaelement-js" src="https://www.windpowerengineering.com/wp-includes/js/mediaelement/wp-mediaelement.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2427
2427
2428<script id="wp-api-request-js-extra">
2429var wpApiSettings = {"root":"https://www.windpowerengineering.com/wp-json/","nonce":"9963a1ed94","versionString":"wp/v2/"};
2430//# sourceURL=wp-api-request-js-extra
2431</script>
vendor: 1 bytes, line 2431
2431
2432<script id="wp-api-request-js" src="https://www.windpowerengineering.com/wp-includes/js/api-request.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2432
2432
2433<script id="wp-dom-ready-js" src="https://www.windpowerengineering.com/wp-includes/js/dist/dom-ready.min.js?ver=3fe927cab37bf38d6a23"></script>
vendor: 1 bytes, line 2433
2433
2434<script id="wp-hooks-js" src="https://www.windpowerengineering.com/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script>
vendor: 1 bytes, line 2434
2434
2435<script id="wp-i18n-js" src="https://www.windpowerengineering.com/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script>
vendor: 1 bytes, line 2435
2435
2436<script id="wp-i18n-js-after">
2437wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
2438//# sourceURL=wp-i18n-js-after
2439</script>
vendor: 1 bytes, line 2439
2439
2440<script id="wp-a11y-js" src="https://www.windpowerengineering.com/wp-includes/js/dist/a11y.min.js?ver=31c6cec5a4ff7aff483d"></script>
vendor: 1 bytes, line 2440
2440
2441<script id="clipboard-js" src="https://www.windpowerengineering.com/wp-includes/js/clipboard.min.js?ver=2.0.11"></script>
vendor: 1 bytes, line 2441
2441
2442<script id="media-views-js-extra">
2443var _wpMediaViewsL10n = {"mediaFrameDefaultTitle":"Media","url":"URL","addMedia":"Add media","search":"Search","select":"Select","cancel":"Cancel","update":"Update","replace":"Replace","remove":"Remove","back":"Back","selected":"%d selected","dragInfo":"Drag and drop to reorder media files.","uploadFilesTitle":"Upload files","uploadImagesTitle":"Upload images","mediaLibraryTitle":"Media Library","insertMediaTitle":"Add media","createNewGallery":"Create a new gallery","createNewPlaylist":"Create a new playlist","createNewVideoPlaylist":"Create a new video playlist","returnToLibrary":"\u2190 Go to library","allMediaItems":"All media items","allDates":"All dates","noItemsFound":"No items found.","insertIntoPost":"Insert into post","unattached":"Unattached","mine":"Mine","trash":"Trash","uploadedToThisPost":"Uploaded to this post","warnDelete":"You are about to permanently delete this item from your site.\nThis action cannot be undone.\n 'Cancel' to stop, 'OK' to delete.","warnBulkDelete":"You are about to permanently delete these items from your site.\nThis action cannot be undone.\n 'Cancel' to stop, 'OK' to delete.","warnBulkTrash":"You are about to trash these items.\n  'Cancel' to stop, 'OK' to delete.","bulkSelect":"Bulk select","trashSelected":"Move to Trash","restoreSelected":"Restore from Trash","deletePermanently":"Delete permanently","errorDeleting":"Error in deleting the attachment.","apply":"Apply","filterByDate":"Filter by date","filterByType":"Filter by type","searchLabel":"Search media","searchMediaLabel":"Search media","searchMediaPlaceholder":"Search media items...","mediaFound":"Number of media items found: %d","noMedia":"No media items found.","noMediaTryNewSearch":"No media items found. Try a different search.","mediaItemViewed":"Viewing media item: %s","attachmentDetails":"Attachment details","insertFromUrlTitle":"Insert from URL","setFeaturedImageTitle":"Featured image","setFeaturedImage":"Set featured image","createGalleryTitle":"Create gallery","editGalleryTitle":"Edit gallery","cancelGalleryTitle":"\u2190 Cancel gallery","insertGallery":"Insert gallery","updateGallery":"Update gallery","addToGallery":"Add to gallery","addToGalleryTitle":"Add to gallery","reverseOrder":"Reverse order","imageDetailsTitle":"Image details","imageReplaceTitle":"Replace image","imageDetailsCancel":"Cancel edit","editImage":"Edit image","chooseImage":"Choose image","selectAndCrop":"Select and crop","skipCropping":"Skip cropping","cropImage":"Crop image","cropYourImage":"Crop your image","cropping":"Cropping\u2026","suggestedDimensions":"Suggested image dimensions: %1$s by %2$s pixels.","cropError":"There has been an error cropping your image.","audioDetailsTitle":"Audio details","audioReplaceTitle":"Replace audio","audioAddSourceTitle":"Add audio source","audioDetailsCancel":"Cancel edit","videoDetailsTitle":"Video details","videoReplaceTitle":"Replace video","videoAddSourceTitle":"Add video source","videoDetailsCancel":"Cancel edit","videoSelectPosterImageTitle":"Select poster image","videoAddTrackTitle":"Add subtitles","playlistDragInfo":"Drag and drop to reorder tracks.","createPlaylistTitle":"Create audio playlist","editPlaylistTitle":"Edit audio playlist","cancelPlaylistTitle":"\u2190 Cancel audio playlist","insertPlaylist":"Insert audio playlist","updatePlaylist":"Update audio playlist","addToPlaylist":"Add to audio playlist","addToPlaylistTitle":"Add to Audio Playlist","videoPlaylistDragInfo":"Drag and drop to reorder videos.","createVideoPlaylistTitle":"Create video playlist","editVideoPlaylistTitle":"Edit video playlist","cancelVideoPlaylistTitle":"\u2190 Cancel video playlist","insertVideoPlaylist":"Insert video playlist","updateVideoPlaylist":"Update video playlist","addToVideoPlaylist":"Add to video playlist","addToVideoPlaylistTitle":"Add to video Playlist","filterAttachments":"Filter media","attachmentsList":"Media list","settings":{"tabs":[],"tabUrl":"https://www.windpowerengineering.com/wp-admin/media-upload.php?chromeless=1","mimeTypes":{"image":"Images","audio":"Audio","video":"Video","application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-word.document.macroEnabled.12,application/vnd.ms-word.template.macroEnabled.12,application/vnd.oasis.opendocument.text,application/vnd.apple.pages,application/pdf,application/vnd.ms-xpsdocument,application/oxps,application/rtf,application/wordperfect,application/octet-stream":"Documents","application/vnd.apple.numbers,application/vnd.oasis.opendocument.spreadsheet,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,application/vnd.ms-excel.sheet.binary.macroEnabled.12":"Spreadsheets","application/x-gzip,application/rar,a
2443pplication/x-tar,application/zip,application/x-7z-compressed":"Archives"},"captions":true,"nonce":{"sendToEditor":"5d8fa3901b","setAttachmentThumbnail":"816b1b6ab9"},"post":{"id":0},"defaultProps":{"link":"none","align":"","size":""},"attachmentCounts":{"audio":1,"video":1},"oEmbedProxyUrl":"https://www.windpowerengineering.com/wp-json/oembed/1.0/proxy","embedExts":["mp3","ogg","flac","m4a","wav","mp4","m4v","webm","ogv","flv"],"embedMimes":{"mp3":"audio/mpeg","ogg":"audio/ogg","flac":"audio/flac","m4a":"audio/mpeg","wav":"audio/wav","mp4":"video/mp4","m4v":"video/mp4","webm":"video/webm","ogv":"video/ogg","flv":"video/x-flv"},"contentWidth":740,"months":[{"year":"2026","month":"6","text":"June 2026"},{"year":"2025","month":"12","text":"December 2025"},{"year":"2025","month":"11","text":"November 2025"},{"year":"2025","month":"10","text":"October 2025"},{"year":"2025","month":"9","text":"September 2025"},{"year":"2025","month":"8","text":"August 2025"},{"year":"2025","month":"6","text":"June 2025"},{"year":"2025","month":"5","text":"May 2025"},{"year":"2025","month":"4","text":"April 2025"},{"year":"2025","month":"3","text":"March 2025"},{"year":"2025","month":"2","text":"February 2025"},{"year":"2025","month":"1","text":"January 2025"},{"year":"2024","month":"12","text":"December 2024"},{"year":"2024","month":"11","text":"November 2024"},{"year":"2024","month":"10","text":"October 2024"},{"year":"2024","month":"9","text":"September 2024"},{"year":"2024","month":"8","text":"August 2024"},{"year":"2024","month":"7","text":"July 2024"},{"year":"2024","month":"6","text":"June 2024"},{"year":"2024","month":"5","text":"May 2024"},{"year":"2024","month":"4","text":"April 2024"},{"year":"2024","month":"3","text":"March 2024"},{"year":"2024","month":"2","text":"February 2024"},{"year":"2024","month":"1","text":"January 2024"},{"year":"2023","month":"12","text":"December 2023"},{"year":"2023","month":"11","text":"November 2023"},{"year":"2023","month":"10","text":"October 2023"},{"year":"2023","month":"9","text":"September 2023"},{"year":"2023","month":"8","text":"August 2023"},{"year":"2023","month":"7","text":"July 2023"},{"year":"2023","month":"6","text":"June 2023"},{"year":"2023","month":"5","text":"May 2023"},{"year":"2023","month":"4","text":"April 2023"},{"year":"2023","month":"3","text":"March 2023"},{"year":"2023","month":"2","text":"February 2023"},{"year":"2023","month":"1","text":"January 2023"},{"year":"2022","month":"12","text":"December 2022"},{"year":"2022","month":"11","text":"November 2022"},{"year":"2022","month":"10","text":"October 2022"},{"year":"2022","month":"9","text":"September 2022"},{"year":"2022","month":"8","text":"August 2022"},{"year":"2022","month":"7","text":"July 2022"},{"year":"2022","month":"6","text":"June 2022"},{"year":"2022","month":"5","text":"May 2022"},{"year":"2022","month":"4","text":"April 2022"},{"year":"2022","month":"3","text":"March 2022"},{"year":"2022","month":"2","text":"February 2022"},{"year":"2022","month":"1","text":"January 2022"},{"year":"2021","month":"12","text":"December 2021"},{"year":"2021","month":"11","text":"November 2021"},{"year":"2021","month":"10","text":"October 2021"},{"year":"2021","month":"9","text":"September 2021"},{"year":"2021","month":"8","text":"August 2021"},{"year":"2021","month":"7","text":"July 2021"},{"year":"2021","month":"6","text":"June 2021"},{"year":"2021","month":"5","text":"May 2021"},{"year":"2021","month":"4","text":"April 2021"},{"year":"2021","month":"3","text":"March 2021"},{"year":"2021","month":"2","text":"February 2021"},{"year":"2021","month":"1","text":"January 2021"},{"year":"2020","month":"12","text":"December 2020"},{"year":"2020","month":"11","text":"November 2020"},{"year":"2020","month":"10","text":"October 2020"},{"year":"2020","month":"9","text":"September 2020"},{"year":"2020","month":"8","text":"August 2020"},{"year":"2020","month":"7","text":"July 2020"},{"year":"2020","month":"6","text":"June 2020"},{"year":"2020","month":"5","text":"May 2020"},{"year":"2020","month":"4","text":"April 2020"},{"year":"2020","month":"3","text":"March 2020"},{"year":"2020","month":"2","text":"February 2020"},{"year":"2020","month":"1","text":"January 2020"},{"year":"2019","month":"12","text":"December 2019"},{"year":"2019","month":"11","text":"November 2019"},{"year":"2019","month":"10","text":"October 2019"},{"year":"2019","month":"9","text":"September 2019"},{"year":"2019","month":"8","text":"August 2019"},{"year":"2019","month":"7","text":"July 2019"},{"year":"2019","month":"6","text":"June 2019"},{"year":"2019","month":"5","text":"May 2019"},{"year":"2019","month":"4","text":"April 2019"},{"year":"2019","month":"3","text":"March 2019"},{"year":"2019","month":"2","text":"February 2019"},{"year":"2019","month":"1","text":"January 2019"},{"year":"2018","month":"12","text":"December 2018"},{"year":"2018","month":"11","text":"November 2018"},{"year":"2018","month":"10","text":"October 2018"},{"year":"2018","month":"9","text":"September 2018"},{"year":"2018","month":"8","text":"August 2018"},{"year":"2018","month":"7","text":"July 2018"},{"year":"2018","month":"6","text":"June 2018"},{"year":"2018","month":"5","text":"May 2018"},{"year":"2018","month":"4","text":"April 2018"},{"year":"2018","month":"3","text":"March 2018"},{"year":"2018","month":"2","text":"February 2018"},{"year":"2018","month":"1","text":"January 2018"},{"year":"2017","month":"12","text":"December 2017"},{"year":"2017","month":"11","text":"November 2017"},{"year":"2017","month":"10","text":"October 2017"},{"year":"2017","month":"9","text":"September 2017"},{"year":"2017","month":"8","text":"August 2017"},{"year":"2017","month":"7","text":"July 2017"},{"year":"2017","month":"6","text":"June 2017"},{"year":"2017","month":"5","text":"May 2017"},{"year":"2017","month":"4","text":"April 2017"},{"year":"2017","month":"3","text":"March 2017"},{"year":"2017","month":"2","text":"February 2017"},{"year":"2017","month":"1","text":"January 2017"},{"year":"2016","month":"12","text":"December 2016"},{"year":"2016","month":"11","text":"November 2016"},{"year":"2016","month":"10","text":"October 2016"},{"year":"2016","month":"9","text":"September 2016"},{"year":"2016","month":"8","text":"August 2016"},{"year":"2016","month":"7","text":"July 2016"},{"year":"2016","month":"6","text":"June 2016"},{"year":"2016","month":"5","text":"May 2016"},{"year":"2016","month":"4","text":"April 2016"},{"year":"2016","month":"3","text":"March 2016"},{"year":"2016","month":"2","text":"February 2016"},{"year":"2016","month":"1","text":"January 2016"},{"year":"2015","month":"12","text":"December 2015"},{"year":"2015","month":"11","text":"November 2015"},{"year":"2015","month":"10","text":"October 2015"},{"year":"2015","month":"9","text":"September 2015"},{"year":"2015","month":"8","text":"August 2015"},{"year":"2015","month":"7","text":"July 2015"},{"year":"2015","month":"6","text":"June 2015"},{"year":"2015","month":"5","text":"May 2015"},{"year":"2015","month":"4","text":"April 2015"},{"year":"2015","month":"3","text":"March 2015"},{"year":"2015","month":"2","text":"February 2015"},{"year":"2015","month":"1","text":"January 2015"},{"year":"2014","month":"12","text":"December 2014"},{"year":"2014","month":"11","text":"November 2014"},{"year":"2014","month":"10","text":"October 2014"},{"year":"2014","month":"9","text":"September 2014"},{"year":"2014","month":"8","text":"August 2014"},{"year":"2014","month":"7","text":"July 2014"},{"year":"2014","month":"6","text":"June 2014"},{"year":"2014","month":"5","text":"May 2014"},{"year":"2014","month":"4","text":"April 2014"},{"year":"2014","month":"3","text":"March 2014"},{"year":"2014","month":"2","text":"February 2014"},{"year":"2014","month":"1","text":"January 2014"},{"year":"2013","month":"12","text":"December 2013"},{"year":"2013","month":"11","text":"November 2013"},{"year":"2013","month":"10","text":"October 2013"},{"year":"2013","month":"9","text":"September 2013"},{"year":"2013","month":"8","text":"August 2013"},{"year":"2013","month":"7","text":"July 2013"},{"year":"2013","month":"6","text":"June 2013"},{"year":"2013","month":"5","text":"May 2013"},{"year":"2013","month":"4","text":"April 2013"},{"year":"2013","month":"3","text":"March 2013"},{"year":"2013","month":"2","text":"February 2013"},{"year":"2013","month":"1","text":"January 2013"},{"year":"2012","month":"12","text":"December 2012"},{"year":"2012","month":"11","text":"November 2012"},{"year":"2012","month":"10","text":"October 2012"},{"year":"2012","month":"9","text":"September 2012"},{"year":"2012","month":"8","text":"August 2012"},{"year":"2012","month":"7","text":"July 2012"},{"year":"2012","month":"6","text":"June 2012"},{"year":"2012","month":"5","text":"May 2012"},{"year":"2012","month":"4","text":"April 2012"},{"year":"2012","month":"3","text":"March 2012"},{"year":"2012","month":"2","text":"February 2012"},{"year":"2012","month":"1","text":"January 2012"},{"year":"2011","month":"12","text":"December 2011"},{"year":"2011","month":"11","text":"November 2011"},{"year":"2011","month":"10","text":"October 2011"},{"year":"2011","month":"9","text":"September 2011"},{"year":"2011","month":"8","text":"August 2011"},{"year":"2011","month":"7","text":"July 2011"},{"year":"2011","month":"6","text":"June 2011"},{"year":"2011","month":"5","text":"May 2011"},{"year":"2011","month":"4","text":"April 2011"},{"year":"2011","month":"3","text":"March 2011"},{"year":"2011","month":"2","text":"February 2011"},{"year":"2011","month":"1","text":"January 2011"},{"year":"2010","month":"12","text":"December 2010"},{"year":"2010","month":"11","text":"November 2010"},{"year":"2010","month":"10","text":"October 2010"},{"year":"2010","month":"9","text":"September 2010"},{"year":"2010","month":"8","text":"August 2010"},{"year":"2010","month":"7","text":"July 2010"},{"year":"2010","month":"6","text":"June 2010"},{"year":"2010","month":"5","text":"May 2010"},{"year":"2010","month":"4","text":"April 2010"},{"year":"2010","month":"3","text":"March 2010"},{"year":"2010","month":"2","text":"February 2010"},{"year":"2010","month":"1","text":"January 2010"},{"year":"2009","month":"12","text":"December 2009"},{"year":"2009","month":"11","text":"November 2009"},{"year":"2009","month":"10","text":"October 2009"},{"year":"2009","month":"9","text":"September 2009"},{"year":"2009","month":"8","text":"August 2009"},{"year":"2009","month":"7","text":"July 2009"},{"year":"2009","month":"6","text":"June 2009"},{"year":"2009","month":"5","text":"May 2009"}],"mediaTrash":0,"infiniteScrolling":1}};
2444//# sourceURL=media-views-js-extra
2445</script>
vendor: 1 bytes, line 2445
2445
2446<script id="media-views-js" src="https://www.windpowerengineering.com/wp-includes/js/media-views.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2446
2446
2447<script id="media-editor-js" src="https://www.windpowerengineering.com/wp-includes/js/media-editor.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2447
2447
2448<script id="media-audiovideo-js" src="https://www.windpowerengineering.com/wp-includes/js/media-audiovideo.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2448
2448
2449<script id="ea-global-js" src="https://www.windpowerengineering.com/wp-content/themes/ThemeWTWH/assets/js/global-min.js?ver=1749457156"></script>
vendor: 1 bytes, line 2449
2449
2450<script id="wp-emoji-settings" type="application/json">
2451{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://www.windpowerengineering.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1.1"}}
2452</script>
vendor: 1 bytes, line 2452
2452
2453<script type="module">
2454/*! This file is auto-generated */
2455var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
2456//# sourceURL=https://www.windpowerengineering.com/wp-includes/js/wp-emoji-loader.min.js
2457</script>
vendor: 1 bytes, line 2457
2457
2458<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a400b282bb70c071',t:'MTc5MDI0MTQ1OQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
2458</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.