/* 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":30426,"date":"2026-05-16T12:27:17","date_gmt":"2026-05-16T12:27:17","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=30426"},"modified":"2026-05-16T12:27:18","modified_gmt":"2026-05-16T12:27:18","slug":"dostawa-bylo-ograniczony-z-powodu-panstwowo-kontrolowanego-stylu-hazardu-i-ograniczen-lokalnego-rynku","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/dostawa-bylo-ograniczony-z-powodu-panstwowo-kontrolowanego-stylu-hazardu-i-ograniczen-lokalnego-rynku\/","title":{"rendered":"Dostawa bylo ograniczony z powodu panstwowo kontrolowanego stylu hazardu i ograniczen lokalnego rynku"},"content":{"rendered":"

Kiedy powinienes zdecydowac program sie nie odkrywa, profile zwykle uzyskuja w niej dostepnosc przez VPN mozliwie korzystaja z oficjalnego alternatywnego linku domeny skorzystac z w tym poscie. Mozesz sie tego spodziewac razem z narzedzia odpowiedzialnego hazardu, i ograniczenia wplat, strat oraz opcja samowykluczenia. Vulkan Vegas Aplikacja odkryta zoptymalizowana pochylenie wydajnosci i mozesz zuzycia informacji, co pozwala w komfortowa gre jeszcze na slabszym polaczeniu internetowym.<\/p>\n

Nowi sportowcy mogli skorzystac z bonusu powitalnego, tylko kto bedzie mowi o jeszcze wiecej srodki na gre oraz darmowe spiny. Chociaz czatu nienagrane masz to normalnie kilka minut, doskonaly w wschod-mailu \ufffd kiedys kilka godzin do w sumie, 24 dlugi czas. Chociaz Vulkan Vegas wybor jest naprawde standard i mozesz obejmuje zarowno ponadczasowe automaty, od i bardzo zaawansowane projekty. Dla wielu osob podstawa to, ktora sprawi dodatkowy bonus on wczesniej uczciwe kryteria obrotu \ufffd oczywiscie Vulkan Vegas te kryteria sa typowo klarownie przedstawione.<\/p>\n

Oprogramowanie komorkowy Vulkan Vegas probuje latwy w uzyciu, ktorzy maja latwym dostepem na menu, promocji i bedziesz obslugi wlasciciela do jezyku polskim. Wystarczajaco otworzyc przegladarke, zaloguj sie, zeby na swoje czlonkostwo i bedziesz zrelaksowac sie i grac \ufffd od automatow podazaniu kasyno nienagrane. Wszystko to samo roznych metody zakupow moga miec miec ograniczenia, wiec warte zachodu sprawdzic szczegoly na stronie kasyno. W stalych graczy kasyna przygotowalo program lojalnosciowy, kto nagradza rzemioslo punktami wymienialnymi z gotowke lub jeszcze wiecej motywacja. Kazda obstawianie pomoc jest w odpowiednio wariantach, co pozwala ewoluowac rozgrywke na indywidualnych preferencji. Co niezwykle wazne, wszystko gier jest wlasciwie dostepna z trybie demonstracja, co pozwala polskim graczom podjac je bez ryzyka przed rozpoczeciem gra wideo na prawdziwy dochod.<\/p>\n

Do tego cashback w kilka% tygodniowo, a formularz wniosku lojalnosciowy z 99 poziomach oni oferta malzenska w regularnych graczy. Chociaz checi grania z gry hazardowe do prawdziwy dochod nalezy nawet potwierdzic swoja tytul. Inny uklad lojalnosciowy Vulkan Vegas oni okazja przeznaczona dla zapalonych graczy strony internetowe. Nasza oferta video pokera mowi o takie jak tytuly od Jacks an jak rowniez Better, Deuces Wild, Drob Poker jesli czy nie Tens an jesli nie Better.<\/p>\n

Organizacja cotygodniowych i mozesz miesiecznych promocji obejmuje https:\/\/spinsamuraicasino.pl\/<\/a> reload motywacja, bezplatne spiny oraz turniej z pulami nagrod, stad zwiekszaja szanse na wygrana. Interaktywnosc, opcja dyskurs ktorzy maja krupierem i bedziesz innymi graczami oraz roznorodnosc stolow sprawiaja, jednego do kasyno na zywo Vulkan Vegas technologia informacyjna fantastyczny wybor z tych, ktorzy szukaja autentycznych wrazen. Hojne fillip powitalne, bezplatne spiny i mozesz staly cashback w stalych graczy. Tak przygotowalismy takze mam, stworzyc, jednego Jesli chodzi o ekspozycja w naszym kasynie jest jeszcze bardziej ekscytujaca i satysfakcjonujaca.<\/p>\n

Dolacz do zadowolonych klientow Vulkan Vegas i bedziesz przekonaj sie, dlaczego bylismy liderem na polskim rynku<\/h2>\n

Kiedy powinienes zdecydowac obstawiajacy nie postawi cashbacku, bedzie kontynuowany on spalony. Styl cashbacku bylo przekazywana na konto premiowe. Tym wiekszy stala, im wyzej cashbacku dostanie kupujacy Vulkan Vegas. Co tydzien uzytkownicy pochodza z spotkanie przyniesc z 8000 ZL jesli chodzi o cashbacku.<\/p>\n

W kasynie siec Vulkan Vegas blyszczy atrakcyjna oferta promocyjna, wraz z bonusami powitalnymi i mozesz cashbackami, i dlatego przyciagaja nowych graczy. Zanim skorzystasz, sprawdz ustawodawstwo cashbacku, aby poznac informacje promocji! Nie moze sie nie udac w sprawie przegrane, od Vulkan Vegas nawet oferuje cashback, aby odzyskac region utraconych srodkow.<\/p>\n

Nieustannie dodajemy nowe sloty, abys zawsze mial dostawa na najswiezszych i najciekawszych tworzenie na rynku. Bardzo jak mozesz wspolpracujemy z najlepszymi dostawcami gier na rynku, aby najwyzsza wybierz i bedziesz biezacy gry. Miec wyprawy w kasynie moze byc bardzo podstawowe intuicyjne. Wyprobowac mozna do licznych tytulow jak pewnych producentow, dobry cena internetowa jest bardzo szeroka. Wplaty mozna osiagnac w naszym kasynie posiadania posrednictwem wielu specjalnych kanaly, i Visa, Mastercard, Insta Debit i innych.<\/p>\n

Maksymalna kwota cashback nie opiera sie wszystko to samo kiedys levelu do programie lojalnosciowym<\/h2>\n

Pozniej nalezy sprawdzic czesc zakladow sportowych i przybyc o obstawiac preferencje czasy. Nasza cena zakladow sportowych okazalo sie, ze stworzona z rozwazaja naprawde wymagajacych fanach sportu. Nasze wlasne przedsiebiorstwa hazardowe nienagrane dzieje sie 24\/7, tak stale jest tabularyzuj podobny Twoim preferencjom i mozesz budzetowi. Twoj tylko system cashback pozwala przywrocic na dwanascie% tygodniowych strat, w zaleznosci od poziomu VIP. Zawodowi sportowcy ktorzy maja kontem VIP funkcje lepsze ograniczenia zakupow i mozesz cwicz laczenie w pakiety z bezkosztowe spiny. Mozna wpasc, i to jednoreki bandyta tygodnia biora omowilem na zabawie, mozesz wchodzic w interakcje bonus posiadania uzasadnienie e-mail, czasem inny rodzaj motywacja sto zl posiadania aplikacji o bez depozytu i mozesz kuszace darmowe spiny.<\/p>\n","protected":false},"excerpt":{"rendered":"

Kiedy powinienes zdecydowac program sie nie odkrywa, profile zwykle uzyskuja w niej dostepnosc przez VPN mozliwie korzystaja z oficjalnego alternatywnego linku domeny skorzystac z w tym poscie. Mozesz sie tego spodziewac razem z narzedzia odpowiedzialnego hazardu, i ograniczenia wplat, strat oraz opcja samowykluczenia. Vulkan Vegas Aplikacja odkryta zoptymalizowana pochylenie wydajnosci\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-30426","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30426","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=30426"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30426\/revisions"}],"predecessor-version":[{"id":30427,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30426\/revisions\/30427"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=30426"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=30426"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=30426"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}