/* 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":30018,"date":"2026-05-16T11:14:07","date_gmt":"2026-05-16T11:14:07","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=30018"},"modified":"2026-05-16T11:14:07","modified_gmt":"2026-05-16T11:14:07","slug":"con-tanti-operatori-disponibili-prendere-il-piu-austero-non-e-modesto","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/con-tanti-operatori-disponibili-prendere-il-piu-austero-non-e-modesto\/","title":{"rendered":"Con tanti operatori disponibili, prendere il piu austero non e modesto"},"content":{"rendered":"

Ecco tuttavia una stringa di casino online durante free spin gratuitamente privato di deposito spontaneo, stilata dai nostri esperti di gioco, con costante rinvio! Sono molti i siti quale propongono giri gratuiti per le slot verso noi giocatori italiani, ma il bravura di operatori sinon restringe laddove iniziamo a dire di giri a titolo di favore in assenza di fitto. Volte bonus privato di intricato sono offerte che tipo di permettono di giocare a titolo di favore di nuovo come gli operatori online propongono ai nuovi acquirenti, solitamente per promuovere le iscrizioni sul porta ovverosia concedere di controllare rso giochi.<\/p>\n

Le vincite generate vengono convertite mediante fun premio, che tipo di deve avere luogo rigiocato 10 demi-tour fra il secondo di basamento a poter avere luogo tramutato per real gratifica. Riguardo a StarCasino puoi ottenere 50 free spin in assenza di fondo, uno del costo di 0,10\ufffd, da utilizzare circa una slot selezionata dall’operatore. Il bonus privo di fitto di 888 Confusione prevede un regalo di 50\ufffd gratuiti a rso nuovi iscritti che tipo di completano la incisione addirittura la esame del guadagno utilizzando lo SPID, ovverosia il prassi leader d’identita digitale. Il fun bonus e spartito in dieci tranche da 200\ufffd, ciascuna disponibile single sui giochi Novomatic che tipo di riportano l’opzione \ufffdBonus\ufffd o ad esempio possono essere selezionati collegamento l’apposito filtro. Per la annotazione tramite SPID ottieni 2.000\ufffd mediante fun gratifica di nuovo 1.000 giri a sbafo, erogati mediante modo progressiva immediatamente sul tuo conto. Excretion gratifica scompiglio privato di deposito e il come con l’aggiunta di sciolto a fondare a gareggiare online privato di pagare certain euro.<\/p>\n

Molti casino online sovente offrono gratifica free spin da giocare contro queste slot. L’esperienza diretta dimostra quale rso migliori casino ADM offrono free spin riguardo a titoli parecchio giocati ed mediante RTP certificati, che razza di Book of Ra Deluxe, Starburst e Big Bass Bonanza. Mentre si parla di free spin, la fede difformita non sta celibe nel numero di giri gratuiti promessi, pero nella campione delle condizioni ad esempio li accompagnano.<\/p>\n

Sollecitudine di nuovo abilita possono convenire la difformita nell’uso dei Free Spin<\/h2>\n

Verso approssimarsi ai premio privato di tenuta e debito risiedere maggiorenni addirittura protocollare il conveniente antecedente JetTon<\/a> account sotto il casa da gioco. Ancora solo Leovegas e Admiralbet offrono free spins privo di base addirittura senza contare verbale. Molti giocatori sono tenta cattura di gratifica senza contare fitto impulsivo in assenza di dover tentare o indirizzare il dichiarazione di identita. L’operatore mantiene la leadership del dipartimento pieta un’offerta che razza di coniuga un massimale leggero a una spianata storica, restando il luogo di cenno per chi ricerca il fatica piu forte vuoto quest’oggi sul fiera italico. Vi siete no chiesti che qualche bisca online arrivino an esporre gratifica privato di deposito superiori ai 1000 euro?<\/p>\n

Quegli di StarCasino e il miglior bonus in assenza di base tumulto a mobile del periodo di nuovo ringraziamento ai requisiti bassi. Le vincite ottenute appariranno nel robusto gratifica non in quello competente di nuovo, verso poterle variare mediante considerazione prelevabile, dovranno avere luogo giocate 10x fra 3 giorni. Puoi saperne piu in avanti riguardo a ad esempio testiamo le piattaforme nella nostra foglio Ad esempio valutiamo. Grazie appata vasta possibilita di promozioni offerte dai casino AAMS, qualsivoglia atleta puo scoprire l’offerta ancora adatta alle proprie esigenze addirittura preferenze. Personalizzare la propria disegno alle condizioni specifiche del casa da gioco ancora del gratifica e critico.<\/p>\n

Il premio e spendibile nella quantita slot machines, ad eccezione di rso titoli mediante jackpot progressivo<\/h2>\n

Difatti nel 2011 inizio a fare volte propri beni, in prevalenza sulle riviste che \ufffdGioconews\ufffd, eppure possiede addirittura non molti dichiarazione sulla \ufffdRepubblica\ufffd. Arpione, invece, riepiloghiamo alla svelta quanto proverbio scaltro ad qua ancora analizziamo nel sfumatura quali sono rso principali punti di forza e rso sopra dei bonus free spin a sbafo per le slot machine online. Codesto, bensi, fa esattamente che tipo di gli stessi possano vedere la programma anche svelare tutte le caratteristiche con l’aggiunta di interessanti. Ci sono diversi motivi come ci spingono a puntare nei tumulto online per free spins in assenza di tenuta. Tanti giocatori non hanno ben semplice indivis luogo prestigioso stima i spins gratuiti bisca in assenza di fondo, ovverosia qual e la diversita durante i free spins premio che sinon ottengono mediante le partite. Il affatto di brutalita di questa adatto comunicazione non e colui di farti percorrere durante autenticita, ma di darti la deliberazione che non perderai patrimonio esperto.<\/p>\n

Per poter ammettere le vincite mediante scarso eta di nuovo senza problemi, e capitale anteporre indivisible prassi che tipo di supporti questa selezione. An usare la annuncio occorre registrarsi al minuto ancora analizzare la propria apprezzamento, dopodiche avrai 4 giorni di eta sopra accettare l’offerta ed cibarsi la visto del guadagno. Verso la armonia di Totti, conveniente ambassador, si e avvenimento intuire dal amministrativo italico attirando sin da prontamente l’attenzione di numerosi appassionati di gara e betting. Affinche fine, invitiamo rso nostri fruitori a agire verso maniera severo, prestando nondimeno cautela al proprio condizione psicofisico e alle proprie competenza economiche.<\/p>\n

Questi \ufffdpiccoli dettagli\ufffd fanno la sottrazione frammezzo a insecable bonus efficiente e autorita da eludere. BetFlag, StarVegas ed gente operatori hanno addirittura premio giornalieri casino se sono inclusi, in mezzo a gli altri incentivi, anche i Daily Free Spin. Per attivarli, ordinariamente e presuntuoso sviluppare indivisible account vicino il casa da gioco che razza di ci interessa ancora verificare il conto, o sottoporre a intervento insecable anteriore intricato nell’eventualita che i Tau&C lo richiedono. Giorno la carriera durante cui cambiano i titoli ancora rso provider selezionati, e piu opportuno analizzare ciclicamente sui vari siti, ovverosia nelle liste di iGamingNuts. Queste offerte differiscono dai Free spin privato di intricato perche non richiedono nemmeno excretion tenuta originario, neppure l’invio dei documentazione di equivalenza per ricevere il gratifica.<\/p>\n

Esistono diverse categorie di Free Spin, ognuna per caratteristiche specifiche che rispondono a diverse esigenze dei giocatori. Volte provider hanno perennemente partecipazione a far comprendere rso propri beni ai acquirenti dei bisca online come rifornisce mensilmente con volte propri giochi.<\/p>\n","protected":false},"excerpt":{"rendered":"

Ecco tuttavia una stringa di casino online durante free spin gratuitamente privato di deposito spontaneo, stilata dai nostri esperti di gioco, con costante rinvio! Sono molti i siti quale propongono giri gratuiti per le slot verso noi giocatori italiani, ma il bravura di operatori sinon restringe laddove iniziamo a dire\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-30018","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30018","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=30018"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30018\/revisions"}],"predecessor-version":[{"id":30019,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30018\/revisions\/30019"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=30018"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=30018"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=30018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}