/* Widget Name: Button Description: Create a custom button with flexible styling, icon support, and click tracking functionality. Author: SiteOrigin Author URI: https://siteorigin.com Documentation: https://siteorigin.com/widgets-bundle/button-widget-documentation/ Keywords: event, icon, link */ class SiteOrigin_Widget_Button_Widget extends SiteOrigin_Widget { public function __construct() { parent::__construct( 'sow-button', __( 'SiteOrigin Button', 'so-widgets-bundle' ), array( 'description' => __( 'Create a custom button with flexible styling, icon support, and click tracking functionality.', 'so-widgets-bundle' ), 'help' => 'https://siteorigin.com/widgets-bundle/button-widget-documentation/', ), array( ), false, plugin_dir_path( __FILE__ ) ); } public function get_settings_form() { return array( 'responsive_breakpoint' => array( 'type' => 'measurement', 'label' => __( 'Responsive Breakpoint', 'so-widgets-bundle' ), 'default' => '780px', 'description' => __( 'This setting controls when the Mobile Align setting will be used. The default value is 780px.', 'so-widgets-bundle' ), ), ); } public function initialize() { $this->register_frontend_styles( array( array( 'sow-button-base', plugin_dir_url( __FILE__ ) . 'css/style.css', array(), SOW_BUNDLE_VERSION, ), ) ); } public function get_widget_form() { return array( 'text' => array( 'type' => 'text', 'label' => __( 'Button Text', 'so-widgets-bundle' ), ), 'url' => array( 'type' => 'link', 'label' => __( 'Destination URL', 'so-widgets-bundle' ), 'allow_shortcode' => true, ), 'new_window' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Open in a new window', 'so-widgets-bundle' ), ), 'download' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Download', 'so-widgets-bundle' ), 'description' => __( 'The Destination URL will be downloaded when a user clicks on the button.', 'so-widgets-bundle' ), ), 'button_icon' => array( 'type' => 'section', 'label' => __( 'Icon', 'so-widgets-bundle' ), 'fields' => array( 'icon_selected' => array( 'type' => 'icon', 'label' => __( 'Icon', 'so-widgets-bundle' ), ), 'icon_color' => array( 'type' => 'color', 'label' => __( 'Icon Color', 'so-widgets-bundle' ), ), 'icon' => array( 'type' => 'media', 'label' => __( 'Image Icon', 'so-widgets-bundle' ), 'description' => __( 'Replaces the icon with your own image icon.', 'so-widgets-bundle' ), ), 'icon_placement' => array( 'type' => 'select', 'label' => __( 'Icon Placement', 'so-widgets-bundle' ), 'default' => 'left', 'options' => array( 'top' => __( 'Top', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'bottom' => __( 'Bottom', 'so-widgets-bundle' ), 'left' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), 'design' => array( 'type' => 'section', 'label' => __( 'Design and Layout', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'width' => array( 'type' => 'measurement', 'label' => __( 'Width', 'so-widgets-bundle' ), 'description' => __( 'Leave blank to let the button resize according to content.', 'so-widgets-bundle' ), ), 'align' => array( 'type' => 'select', 'label' => __( 'Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'mobile_align' => array( 'type' => 'select', 'label' => __( 'Mobile Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'theme' => array( 'type' => 'select', 'label' => __( 'Button Theme', 'so-widgets-bundle' ), 'default' => 'flat', 'options' => array( 'atom' => __( 'Atom', 'so-widgets-bundle' ), 'flat' => __( 'Flat', 'so-widgets-bundle' ), 'wire' => __( 'Wire', 'so-widgets-bundle' ), ), ), 'button_color' => array( 'type' => 'color', 'label' => __( 'Button Color', 'so-widgets-bundle' ), ), 'text_color' => array( 'type' => 'color', 'label' => __( 'Text Color', 'so-widgets-bundle' ), ), 'hover' => array( 'type' => 'checkbox', 'default' => true, 'label' => __( 'Use hover effects', 'so-widgets-bundle' ), 'state_emitter' => array( 'callback' => 'conditional', 'args' => array( 'hover[show]: val', 'hover[hide]: ! val', ), ), ), 'hover_background_color' => array( 'type' => 'color', 'label' => __( 'Hover Background Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'hover_text_color' => array( 'type' => 'color', 'label' => __( 'Hover Text Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'font' => array( 'type' => 'font', 'label' => __( 'Font', 'so-widgets-bundle' ), 'default' => 'default', ), 'font_size' => array( 'type' => 'measurement', 'label' => __( 'Font Size', 'so-widgets-bundle' ), 'default' => '1em', ), 'icon_size' => array( 'type' => 'measurement', 'label' => __( 'Icon Size', 'so-widgets-bundle' ), 'default' => '1.3em', ), 'padding' => array( 'type' => 'measurement', 'label' => __( 'Padding', 'so-widgets-bundle' ), 'default' => '1em', ), 'rounding' => array( 'type' => 'multi-measurement', 'label' => __( 'Rounding', 'so-widgets-bundle' ), 'default' => '0.25em 0.25em 0.25em 0.25em', 'measurements' => array( 'top' => array( 'label' => __( 'Top', 'so-widgets-bundle' ), ), 'right' => array( 'label' => __( 'Right', 'so-widgets-bundle' ), ), 'bottom' => array( 'label' => __( 'Bottom', 'so-widgets-bundle' ), ), 'left' => array( 'label' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), ), 'attributes' => array( 'type' => 'section', 'label' => __( 'Other Attributes and SEO', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'id' => array( 'type' => 'text', 'label' => __( 'Button ID', 'so-widgets-bundle' ), 'description' => __( 'An ID attribute allows you to target this button in JavaScript.', 'so-widgets-bundle' ), ), 'classes' => array( 'type' => 'text', 'label' => __( 'Button Classes', 'so-widgets-bundle' ), 'description' => __( 'Additional CSS classes added to the button link.', 'so-widgets-bundle' ), ), 'title' => array( 'type' => 'text', 'label' => __( 'Title Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a title attribute to the button link.', 'so-widgets-bundle' ), ), 'on_click' => array( 'type' => 'text', 'label' => __( 'Onclick', 'so-widgets-bundle' ), 'description' => __( 'Run this JavaScript when the button is clicked. Ideal for tracking.', 'so-widgets-bundle' ), 'onclick' => true, ), 'rel' => array( 'type' => 'text', 'label' => __( 'Rel Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a rel attribute to the button link.', 'so-widgets-bundle' ), ), ), ), ); } public function get_style_name( $instance ) { if ( empty( $instance['design']['theme'] ) ) { return 'atom'; } return $instance['design']['theme']; } /** * Get the variables for the Button Widget. * * @return array */ public function get_template_variables( $instance, $args ) { $button_attributes = array(); $attributes = $instance['attributes']; $classes = ! empty( $attributes['classes'] ) ? $attributes['classes'] : ''; if ( ! empty( $classes ) ) { $classes .= ' '; } $classes .= 'sowb-button ow-icon-placement-' . $instance['button_icon']['icon_placement']; if ( ! empty( $instance['design']['hover'] ) ) { $classes .= ' ow-button-hover'; } $button_attributes['class'] = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $classes ) ) ); if ( ! empty( $instance['new_window'] ) ) { $button_attributes['target'] = '_blank'; $button_attributes['rel'] = 'noopener noreferrer'; } if ( ! empty( $instance['download'] ) ) { $button_attributes['download'] = null; } if ( ! empty( $attributes['id'] ) ) { $button_attributes['id'] = $attributes['id']; } if ( ! empty( $attributes['title'] ) ) { $button_attributes['title'] = $attributes['title']; } if ( ! empty( $attributes['rel'] ) ) { if ( isset( $button_attributes['rel'] ) ) { $button_attributes['rel'] .= " $attributes[rel]"; } else { $button_attributes['rel'] = $attributes['rel']; } } $icon_image_url = ''; if ( ! empty( $instance['button_icon']['icon'] ) ) { $attachment = wp_get_attachment_image_src( $instance['button_icon']['icon'] ); if ( ! empty( $attachment ) ) { $icon_image_url = $attachment[0]; } } return array( 'button_attributes' => apply_filters( 'siteorigin_widgets_button_attributes', $button_attributes, $instance ), 'href' => ! empty( $instance['url'] ) ? $instance['url'] : '', 'on_click' => ! empty( $attributes['on_click'] ) ? $attributes['on_click'] : '', 'align' => $instance['design']['align'], 'icon_image_url' => $icon_image_url, 'icon' => $instance['button_icon']['icon_selected'], 'icon_color' => $instance['button_icon']['icon_color'], 'text' => $instance['text'], ); } /** * Get the variables that we'll be injecting into the less stylesheet. * * @return array */ public function get_less_variables( $instance ) { if ( empty( $instance ) || empty( $instance['design'] ) ) { return array(); } $text_color = isset( $instance['design']['text_color'] ) ? $instance['design']['text_color'] : ''; $button_color = isset( $instance['design']['button_color'] ) ? $instance['design']['button_color'] : ''; $less_vars = array( 'button_width' => isset( $instance['design']['width'] ) ? $instance['design']['width'] : '', 'button_color' => $button_color, 'text_color' => $text_color, 'icon_size' => ! empty( $instance['design']['icon_size'] ) ? $instance['design']['icon_size'] : '1.3em', 'hover_text_color' => ! empty( $instance['design']['hover_text_color'] ) ? $instance['design']['hover_text_color'] : $text_color, 'hover_background_color' => ! empty( $instance['design']['hover_background_color'] ) ? $instance['design']['hover_background_color'] : $button_color, 'font_size' => isset( $instance['design']['font_size'] ) ? $instance['design']['font_size'] : '', 'rounding' => isset( $instance['design']['rounding'] ) ? $instance['design']['rounding'] : '', 'padding' => isset( $instance['design']['padding'] ) ? $instance['design']['padding'] : '', 'has_text' => empty( $instance['text'] ) ? 'false' : 'true', 'responsive_breakpoint' => $this->get_global_settings( 'responsive_breakpoint' ), 'align' => ! empty( $instance['design']['align'] ) ? $instance['design']['align'] : 'center', 'mobile_align' => ! empty( $instance['design']['mobile_align'] ) ? $instance['design']['mobile_align'] : 'center', 'has_button_icon' => empty( $instance['button_icon']['icon_selected'] ) ? 'false' : 'true', ); if ( ! empty( $instance['design']['font'] ) ) { $font = siteorigin_widget_get_font( $instance['design']['font'] ); $less_vars['button_font'] = $font['family']; if ( ! empty( $font['weight'] ) ) { $less_vars['button_font_weight'] = $font['weight_raw']; $less_vars['button_font_style'] = $font['style']; } } return $less_vars; } /** * Make sure the instance is the most up to date version. * * @return mixed */ public function modify_instance( $instance ) { if ( empty( $instance ) ) { return array(); } $migrate_props = array( 'button_icon' => array( 'icon_selected', 'icon_color', 'icon', ), 'design' => array( 'align', 'theme', 'button_color', 'text_color', 'hover', 'hover_text_color', 'hover_background_color', 'font_size', 'rounding', 'padding', ), 'attributes' => array( 'id', ), ); foreach ( $migrate_props as $prop => $sub_props ) { if ( empty( $instance[ $prop ] ) ) { $instance[ $prop ] = array(); foreach ( $sub_props as $sub_prop ) { if ( isset( $instance[ $sub_prop ] ) ) { $instance[ $prop ][ $sub_prop ] = $instance[ $sub_prop ]; unset( $instance[ $sub_prop ] ); } } } } // Migrate onclick setting to prevent Wordfence flag. if ( ! empty( $instance['attributes'] ) && ! empty( $instance['attributes']['onclick'] ) ) { $instance['attributes']['on_click'] = $instance['attributes']['onclick']; } // If the mobile_align setting isn't set, set it to the same value as the align value. if ( ! empty( $instance['design'] ) && ! empty( $instance['design']['align'] ) && empty( $instance['design']['mobile_align'] ) ) { $instance['design']['mobile_align'] = $instance['design']['align']; } // Migrate predefined settings to more customizable settings. if ( ! empty( $instance['design']['font_size'] ) && is_numeric( $instance['design']['font_size'] ) ) { $instance['design']['font_size'] .= 'em'; } if ( ! empty( $instance['design']['padding'] ) && is_numeric( $instance['design']['padding'] ) ) { $instance['design']['padding'] .= 'em'; } if ( ! empty( $instance['design']['rounding'] ) && is_numeric( $instance['design']['rounding'] ) ) { $instance['design']['rounding'] = $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em'; } if ( empty( $instance['design']['icon_size'] ) ) { $instance['design']['icon_size'] = '1.3em'; } return $instance; } public function get_form_teaser() { if ( class_exists( 'SiteOrigin_Premium' ) ) { return false; } return array( sprintf( __( 'Add a beautiful tooltip to the Button Widget with %sSiteOrigin Premium%s', 'so-widgets-bundle' ), '', '' ), ); } } siteorigin_widget_register( 'sow-button', __FILE__, 'SiteOrigin_Widget_Button_Widget' );{"id":60646,"date":"2026-05-21T11:50:15","date_gmt":"2026-05-21T11:50:15","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=60646"},"modified":"2026-05-21T11:50:16","modified_gmt":"2026-05-21T11:50:16","slug":"ersteinzahler-boni-qua-100000-von-hundert-sie-sind-der-gerade-mehrfach-anzutreffende-willkommensbonus","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/ersteinzahler-boni-qua-100000-von-hundert-sie-sind-der-gerade-mehrfach-anzutreffende-willkommensbonus\/","title":{"rendered":"Ersteinzahler Boni qua 100000 Von hundert sie sind der gerade mehrfach anzutreffende Willkommensbonus"},"content":{"rendered":"

Jene Aktionen funzen aufwarts dm speziell simplen Arbeitsweise. Du zahlst auf das Nutzerkonto zum ersten Fleck Penunze ihr. Entsprechend schreibt diese World wide web Spielcasino Bonusgeld nach angewandten Benutzerkonto nutzlich \ufffd selbige Einzahlung wird verdoppelt. So weit wie irgendeiner Hohe Gamer Penunze einbehalten, hangt von ein einzelnen Handlung nicht fruher als. Viele Web Spielbanken brief 100 Euroletten solange bis three hundred Euroletten reichlich. Hinein sich verstandigen auf Anbietern sind zudem forsch hohere Knurren moglich. In Bonus Checks sein eigen nennen unsereiner irgendwas 100% Ersteinzahler Aktionen mit bis zu just one.hundred Euro analysiert.<\/p>\n

Wie gleichfalls funktioniert selbige Gerust des one hundred% Ersteinzahler Provision? Unser Grundsatz sei idiot. Respons registrierst dich storungsfrei denn Neukunde inside einer Verbunden Spielothek. Daselbst sei die erste Hurde uff mark Verschwunden zum Vermittlungsprovision genommen. Folgsam aktivierst respons diesseitigen Willkommensbonus. Inoffizieller mitarbeiter zweiten Schritttempo gehst respons inside den Kassenbereich & zahlst muhelos ebendiese erforderliche Mindestsumme ein. Zumeist handelt parece umherwandern um einen Gangbar Spielbank 9 Eur Vermittlungsprovision ferner parece man sagt, sie seien nebensachlich zeichen 12 Eur Mindesteinzahlung fallig. Achtung: Seitens der Web Spielbanken wird der Ersteinzahler Pramie unter Slots meistens as part of diesem festgelegten Absoluter wert gedeckelt.<\/p>\n

Ersteinzahler Maklercourtage aufwarts 200% und noch mehr<\/h2>\n

Bonusaktionen auf deine erste Einzahlung uber two hundred fifity Von hundert tonen verlockend. In der praxis schubsen die autoren schon besonders aufwarts jene Angebote. Norm eignen storungsfrei 100 Prozentzahl. Wieviel Bonusgeld wird inside weiteren Aktionen drin? Hier that is auch nachfolgende Leitsatz: Wirklich jede Angeschlossen Spielholle entscheidet meine wenigkeit, genau so wie welche qua einem Ersteinzahler Pramie auf Slots umgeht. Bereite dich allerdings darauf vor, hierbei via welcher hoheren Umsatzanforderung konfrontiert zu werden. Inoffizieller mitarbeiter Erprobung besitzen unsereiner wieder und wieder Angebote, as part of denen du angewandten 35-fachen Bonuswert durchfuhren musst. Erst qua Erreichen einer Umsatzgrenze wandelt die Online Spielothek dein Bonusguthaben within auszahlbares Echtgeld damit. Dein Sicht erforderlichkeit somit ohne ausnahme auf selbige Bonusbedingungen gerichtet ci\ufffd”?ur.<\/p>\n

*18+. Vermittlungsgebuhr gelte fur jedes Neukunden. 100 Big Bass Bonanza<\/a> % Einzahlungsbonus bei Einzahlungen so weit wie one hundred\ufffd. Umsatzanforderung: 35x. Noch mehr Bonusbedingungen uff ihr Inter auftritt. Spiele verantwortungsbewusst.<\/p>\n

Willkommensaktionen unter zuhilfenahme von Bonusgeld, das respons wie am schnurchen pro Slots einsetzt, eignen folgende spannende Objekt. Ebendiese Arbeitsweise ein erfolgreichsten two hundred and fifty% Einzahlungsboni mitbekommt parallel genau so wie hinein angewandten Aktionen qua 100000 Prozent nicht mehr da. Respons musst dich zu anfang bei der Gangbar Spielsalon denn Neukunde voll stopfen und aktivierst unser Bonusaktion. Nachher geht eres direkt as part of diesseitigen Kassenbereich. Hierbei war ebendiese erste Einzahlung getatigt, in expire eres selbige doppelte Einzahlungssumme amyotrophic lateral sclerosis Pramie gibt. Als nachstes dreht umherwandern die gesamtheit infolgedessen, diesseitigen Vermittlungsgebuhr freizuspielen. Eigens Slots in der hohe halten einander hierbei von weiteren Spielsalon Game titles nicht bevor. Einsatze vertrauen in diesem fall a single:one, had been hinein Line roulette & Kohlenmonoxid. wie am schnurchen nach seltenheitswert haben zutrifft.<\/p>\n

Slot Provision qua niedriger Einzahlung<\/h2>\n

Eigens innerhalb ein Bonusaktionen pro Highroller herstellen unsereins wieder und wieder unser Ubung, so sehr respons sehr hohe Brummen auf welches Nutzerkonto einzahlen musst. Zum teil setzen nachfolgende Anbieter two hundred and fifty Eur bis 309 Ecu Mindesteinzahlung vorn. Damit dies Spielangebot auszuprobieren \ufffd ferner manche Runden bei der Union unterwegs nachdem werden \ufffd folgende allzu gro?e Hemmschuh. Sera geht noch alternativ. Qua einen Slot Vermittlungsprovision unter zuhilfenahme von niedriger Einzahlung kannst du reibungslos ferner unter einsatz von uberschaubarem Einsatz etliche Runden aktiv den Spielautomaten trudeln. Beste Voraussetzungen, um dies Prasentation nachdem versuchen. Herunten findest respons diese within unseren Augen beste Erreichbar Kasino mit niedriger Einzahlung.<\/p>\n

*18+. Ungeachtet je Glucksspieler in Bundesrepublik deutschland. 100000 % Einzahlungsbonus in Einzahlungen so weit wie hundred\ufffd. Bonusbedingungen: Einzahlung + Maklercourtage x35. Viel mehr Bonusbedingungen uff ihr Inter prasenz. Spiele verantwortungsbewusst.<\/p>\n

Had been einen Pramie heraushebt, ist und bleibt unser niedrige Einzahlungssumme. Der Aspekt, das auf keinen fall im zuge dessen reinlegen darf, so untergeordnet zu handen einen Einzahlungsbonus Managen gultigkeit besitzen. Wie gleichfalls hatten ebendiese aus? Du musst unter allen umstanden selbige Umsatzanforderung im auge behalten. Das zweitplatzierter Location sie sind mogliche Einschrankungen mit bezug auf Zahlungsmethoden. Eben unser zwei Wallets Skrill ferner Neteller sie sind wieder und wieder bei welcher entsprechenden Deckelung betreten. Behalte und durch die bank diesseitigen Freispielzeitraum inoffizieller mitarbeiter Glubscher. Sporadisch man sagt, sie seien sera gleichwohl viele Regelblutung, expire je welches Fertig werden ein Umsatzanforderung Phase ausruhen.<\/p>\n","protected":false},"excerpt":{"rendered":"

Jene Aktionen funzen aufwarts dm speziell simplen Arbeitsweise. Du zahlst auf das Nutzerkonto zum ersten Fleck Penunze ihr. Entsprechend schreibt diese World wide web Spielcasino Bonusgeld nach angewandten Benutzerkonto nutzlich \ufffd selbige Einzahlung wird verdoppelt. So weit wie irgendeiner Hohe Gamer Penunze einbehalten, hangt von ein einzelnen Handlung nicht fruher\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-60646","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/60646","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=60646"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/60646\/revisions"}],"predecessor-version":[{"id":60647,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/60646\/revisions\/60647"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=60646"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=60646"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=60646"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}