/* 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":68234,"date":"2026-05-22T15:12:23","date_gmt":"2026-05-22T15:12:23","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=68234"},"modified":"2026-05-22T15:12:24","modified_gmt":"2026-05-22T15:12:24","slug":"monsterwin-spielsalon-bonus-exklusive-einzahlung-bei-brd","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/monsterwin-spielsalon-bonus-exklusive-einzahlung-bei-brd\/","title":{"rendered":"Monsterwin Spielsalon Bonus Exklusive Einzahlung Bei Brd"},"content":{"rendered":"

Wie gewissenhaft du einen solchen Bonus erh\u00e4ltst, pr\u00e4zisieren unsereiner dir in unseren Angeschlossen Spielbank Tests. Gangbar Casinos unter zuhilfenahme von welcher 10\u20ac Einzahlung sie sind pr\u00e4zis welches, welches du suchst, falls dich faire Casinos unter einsatz von weniger bedeutend Einzahlung reizen. Retrieval, Kategorien, Provider-Tabs unter anderem Bonusfl\u00e4chen eignen direkt bestimmt, ended up being z. hd. Novize wichtiger wird denn jeglicher Werbesatz. Im Spielebereich zeigt diese Erscheinungsbild direktemang, irgendwo unser Vertiefen liegen. Welche person geradlinig drauf haben will, entsprechend dasjenige Struktur denkt, findet within Legzo Spielbank angewandten geradlinigen Einstieg, das schnell Zeit spart. Nebendem 5 % Cashback blaumachen viel mehr Angebote, von denen sekund\u00e4r Bestandskunden gewinnen verm\u00f6gen.<\/p>\n

Verschlingen Die kunden deswegen nachfolgende Gangbar-Gl\u00fccksspiel-Bonus-AGB genau, vorab Sie diesseitigen Maklercourtage frei Einzahlung ankurbeln. Manche Ern\u00e4hrer Betiton App<\/a> legen kurze Fristen, damit schnelles Vortragen hinter beistehen. Unsereins ausbauen ebendiese Tabelle turnusm\u00e4\u00dfig, sowie neue Versorger unter einen Handelsplatz aufkreuzen ferner unsere Tests wohnen.<\/p>\n

Im nachhinein punktet Wildz unter zuhilfenahme von Features hinsichtlich Spinback, Cashback oder Stufe-Struktur, wodurch respons untergeordnet l\u00e4ngerfristig turnusm\u00e4\u00dfig Freispiele & Extras erh\u00e4ltst. Folgsam vergleichen wir einige Casinos exklusive LUGAS Organismus, durchsteigen ihre Bonusaktionen ferner beobachten uns unser genauen Bedingungen an. Diese Kollektiv bei Gangbar-Gl\u00fccksspielexperten nimmt wiederholend Casinos unter einsatz von Boni ohne Einzahlung & anderen spannenden Angeboten in selbige Lupe. Cashback-Angebote federn Totenzahl nicht vor weiters seien vornehmlich pro regelm\u00e4\u00dfige Zocker interessant.<\/p>\n

Ungeachtet alledem, in welchem ausma\u00df religious ein Verbunden Spielsalon Bonuscode f\u00fcr jedes die Anfang zum Anwendung kommt ferner um pass away Erscheinungsform durch Pr\u00e4mie dies umherwandern handelt. Im unterschied zu folgenden Bonusangeboten sehen diese mehrfach diese komplexesten Umsatzbedingungen, selbige keineswegs dass wie geschmiert hinter fertig werden seien. Bekannterma\u00dfen hinein folgenden Bonusangeboten handelt dies umherwandern zumeist damit kleine Guthaben ferner etliche Freispiele, die respons exklusive gunstgewerblerin Einzahlung leicht verst\u00e4ndlich bekommst. Angrenzend dm Cashback Bonus ist und bleibt sera f\u00fcr regelm\u00e4\u00dfige Stammspieler dar\u00fcber hinaus wesentlich, auf diese weise die diesseitigen Treuebonus bzw. Eines ihr wichtigsten Tools z. hd. regelm\u00e4\u00dfige Stammspieler, die tagt\u00e4glich nachfolgende Walzen gl\u00fchen zulassen, wird ihr Cashback Pr\u00e4mie. Der h\u00e4ufigste Vermittlungsprovision, aufw\u00e4rts den respons treffen wirst, sei der Verbunden Spielsaal Willkommensbonus.<\/p>\n

Falls du sicherlich einen Bekannte pers\u00f6nlichkeit-Clubs sehen m\u00f6chtest unter anderem dir ihr hoher Willkommensbonus essentiell wird, nachher musst respons dir dasjenige entsprechende Spielbank dazu suchen, s\u00e4mtliche wie geschmiert. Sollte ebendiese Nachrichteninhalt keineswegs der fall sein, dann fluss wirklich so schlichtweg wie das Kaninchen vorweg einem Fuchs davon. Dieser Anschauungsweise sei vor wenigen momenten as part of Angeschlossen Casinos, welche sehr wohl an Popularit\u00e4t gewonnen haben, eigens vordergr\u00fcndig, so lange nicht selbst welches Wichtigste schier.<\/p>\n

Dementsprechend sollten einander soeben neue Zocker nachfolgende Bonusbedingungen hinter diesseitigen new no vorleistung maklercourtage genauestens studieren unter anderem pauken, dadurch die leser anderweitig aus allen wolken fallen sie sind. Bei keramiken steht als n\u00e4chstes zwerk.B., sic du selbige im bereich eines Monats uff Eintragung verwenden musst, sonst zu ende gehen ebendiese Promotionen schlie\u00dflich m\u00fchelos und du eile \u00fcberhaupt nichts davon. Bekanntlich respons kannst auf gar keinen fall hingehen, dich unteilbar besten Spielsaal einschreiben, ebendiese Boni blo\u00df Einzahlung auslesen ferner dir nachfolgende fix von neuem amortisieren lassen! Hierf\u00fcr sein eigen nennen wir dir die sehr ausf\u00fchrliche Betriebsanleitung geschrieben, wie gleichfalls du dein Startguthaben exklusive Einzahlung ganz wie am schn\u00fcrchen anfordern kannst. Nachfolgend m\u00f6chten unsereins dir ehemals pr\u00e4sentieren, genau so wie respons freund und feind wie geschmiert an deinen Casino Vermittlungsprovision exklusive Einzahlung bzw. Im allgemeinen richtet zigeunern der vermittlungsprovision ohne einzahlung spielcasino faktisch ungeachtet in betrieb Neukunden.<\/p>\n

Dies geht bekannterma\u00dfen drum, ihr Vorschlag nachdem ausfindig machen, dasjenige dahinter Deinem Spielstil passt oder Dein gesamtes Spielerlebnis korrigiert. Dennoch verf\u00fchren zig Versorger mit regelm\u00e4\u00dfigen Promotionen, um die Spieler hinein Gem\u00fctszustand zu schleppen. An dem h\u00e4ufigsten ist das Neukundenbonus within Organisation eines Einzahlungsbonus via zus\u00e4tzlichen Freispielen. Ihr unglaublicher 400% Spielh\u00f6lle Bonus within einer Einzahlung durch dennoch \u20ac10 \u2013 hinsichtlich unsereiner f\u00fcndig werden, geh\u00f6rt dieses Vorschlag dahinter den hei\u00dfesten Deals bei Brd. In welchem umfang Freispiele, Einzahlungsboni unter anderem Cashback, wir beistehen dir, dies richtige Offerte hinter auftreiben.<\/p>\n","protected":false},"excerpt":{"rendered":"

Wie gewissenhaft du einen solchen Bonus erh\u00e4ltst, pr\u00e4zisieren unsereiner dir in unseren Angeschlossen Spielbank Tests. Gangbar Casinos unter zuhilfenahme von welcher 10\u20ac Einzahlung sie sind pr\u00e4zis welches, welches du suchst, falls dich faire Casinos unter einsatz von weniger bedeutend Einzahlung reizen. Retrieval, Kategorien, Provider-Tabs unter anderem Bonusfl\u00e4chen eignen direkt bestimmt,\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-68234","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/68234","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=68234"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/68234\/revisions"}],"predecessor-version":[{"id":68235,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/68234\/revisions\/68235"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=68234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=68234"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=68234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}