/* 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":14214,"date":"2026-05-08T15:15:28","date_gmt":"2026-05-08T15:15:28","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=14214"},"modified":"2026-05-08T15:15:29","modified_gmt":"2026-05-08T15:15:29","slug":"tenemos-diversas-trampas-cual-debe-recordar-del-utilizar-las-creditos-de-los-bonos-desprovisto-tanque","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/tenemos-diversas-trampas-cual-debe-recordar-del-utilizar-las-creditos-de-los-bonos-desprovisto-tanque\/","title":{"rendered":"Tenemos diversas trampas cual debe recordar del utilizar las creditos de los bonos desprovisto tanque"},"content":{"rendered":"

Para usuarios existentes, generalmente son tiradas sin cargo desplazandolo hacia el pelo, referente a acontecimientos incomodos, creditos de bono que nuestro jugador debe transformar antes de encaminarse algun remuneracion. Valore que nada mas puede solicitar y usar el bono desprovisto deposito la unica ocasii?n, independiente de la tarima.<\/p>\n

En cambio, algun bono sin tanque de slots puede ofertar tiradas referente a una tragaperras especi\ufffdfica. Cualquier bono por asignacion falto depositose activa del crear el perfil y puede concederse como liquidacion promocional o igual que tiradas regalado. Registrate, prueba las tragamonedas y aumenta tus opciones sobre ganar carente deposito. Las bonos carente deposito posibilitan buscar juegos y no ha transpirado ganar dinero conveniente desprovisto comprometer tu particular dinero.<\/p>\n

Pero requieren algun gasto original, el concepto puede ser superior a todo bono carente tanque<\/h2>\n

Sin aceptar algun bono desprovisto tanque, es fundamental escuchar las palabras y no ha transpirado modos , revisar una validez de el propuesta asi\ufffd como confirmarte de que el rollover seri\ufffda accesible y no ha transpirado que es adecuado a nosotros estilo de juego. El rollover es una de estas esencia de mas notables para bonos carente deposito pues define cuantas veces debes colocar nuestro monto de el bono suin lograr arrinconar hacen de ganancias. Despues de todo de el lapso estipulado, las ganancias obtenidas podran transferirse a tu saldo favorable siempre desplazandolo hacia el pelo una vez que hayas cumplido las palabras y no ha transpirado situaciones de el bono.<\/p>\n

Puedes asesorarse los opciones que hay disponibles ahora identico alrededor del ranking al tanto y no ha transpirado examinar sus situaciones vigentes. Los casinos con manga larga bonos sin deposito referente a Espana cambian con el pasar del tiempo repeticion, pues estas promociones suelen atreverse de modo puntual de mas personas. Cualquier operador competente disminuye riesgos, sin embargo el trato responsable continua siendo fundamental. Unico esta casinos que he vivido tu mismo y cuya noticia deja conocer que usan exactitud que se puede aguardar en registrarte. De hacer este ranking para excelentes bonos falto deposito nunca me he acotado en distribuir para costo. Asi\ufffd como superior todavia en caso de que te triunfan los tragaperras de video en el caso de que nos lo olvidemos clasicas, puesto que estas contribuyen cualquier 500% a levante bono regalado sobre casino sin tanque.<\/p>\n

Dichos jugadores que suenan en compania de cualquier bono desprovisto tanque sobre 20 \ufffd ahora podrian despertar asi\ufffd como iniciar en jugar. De liberarlo Pinata Casino<\/a> , tienes que apostar 40 veces la importancia de el bono sobre cualquier para dos sucesos sobre juegos no excluidos durante promocion sobre algun termino de 7 las jornadas. Especialista en casinos online asi\ufffd como acerca de listo, que usan bicicletas 6 anos de experiencia. En encontraras un planning al dia para el resto de mejores bonificaciones de casino que hay disponibles sobre Colombia.<\/p>\n

Nuestro naturaleza sobre apuesta es 70 ocasiones el coste de cualquier bono con el fin de descargar fondos. Juegging muestra un bono de recepcion para juegos sobre ruleta referente a 10\ufffd carente urgencia sobre deposito y no ha transpirado cualquier 300% incluso 130\ufffd sobre el inicial superior. Nuestro bono brinda 25 tiradas gratis de cero,20\ufffd entero una de la tragamonedas \ufffdSweet Bonanza Pues es muy Scatter\ufffd. Recibe sobre su correo un listado sobre recientes casinos asi\ufffd como promociones personalizadas.<\/p>\n

Esencialmente, las bonos sin deposito son promociones que las casinos en internet tienen a sus usuarios. Listado actualizada sobre publicaciones de bonos desprovisto tanque para casinos online de 2026. Inscribiri? utiliza en mostrar informacion honesta asi\ufffd como adaptada en entero sector de el franja para facilitarte a coger elecciones informadas.<\/p>\n

Encuentra las casinos de bonos desprovisto tanque mas profusamente generosos sobre Mexico. Los casinos cual no cumplimentan algunos de estos genericos resultan anadidos a nuestra listado negra. Registrate del casino online, opcionalmente en compania de algun fuero promocional, verifica tu cuenta, asi\ufffd como nuestro bono se acreditara automaticamente indumentarias llevando legislacion promocional. No obstante, concierna conocer cual esos bonos acostumbran a quedar entes a modos, igual que campos de envite en el caso de que nos lo olvidemos limites sobre jubilacion, lo cual suele afectar el monto extremo cual es posible retirar. Las bonos falto deposito son la magnifico forma con el fin de que los jugadores se inicien en las casinos online carente tener cual pagar recursos de contiguo. Cualquier enfoque calculado, jugando a largo plazo, suele acontecer mas eficaz para cumplir con los campos sobre envite.<\/p>\n

Si, por medio de las bonos carente tanque, que deben cesion o tiradas de balde para nuevos seres<\/h2>\n

Aprovecha las bonos sin deposito sobre VegasSlotsOnline Ciertas zonas de espana asi\ufffd como tratar tus tragaperras preferidas carente gastar recursos. Resultan algunos las juicio referente a algunos que os deberias definir con el fin de maximizar un bono sobre recibo desprovisto deposito. Ademas, hay opciones mas profusamente nuevas como monederos electronicos arquetipo Skrill o Paypal. Dentro de los alternativas clasicas, disponemos sobre transferencia del banco asi\ufffd como fichas sobre reputacion\/adeudo Visa indumentarias MasterCard. Desplazandolo hacia el pelo es que de retirar lo perfectamente creado acerca de los casinos con manga larga bonos recibimiento sin cargo desprovisto tanque referente a Argentina, existe veces cual tendras que efectuar algun tanque una vez libre nuestro liquidacion de la descuento.<\/p>\n

En algun contexto regulado igual que nuestro espanol, adonde los bonos sin deposito acerca de efectivo escasean, existe algun aspecto clave. La alternativa magnnifica de juguetear empezando desde el movil carente desperdiciar clase. Pero no guarda bono carente tanque, Betista sorprende con el lapso de vigencia sobre 14 las jornadas. Asimismo, inscribiri? actualiza joviales frecuencia con precios recientes y criterios afamados.<\/p>\n

Asi que un bono carente tanque de 30 euros es mucho recursos por adorno de el cirujano. Los bonos cual estan por encima de estas cifras clasicas, poseen prestaciones que captan una atencion del componente y no ha transpirado esto es cosa que ocurre una vez que las bonos falto tanque son de edad avanzada a cinco eurillos. Nunca aquellos operadores sobre juegos de casualidad de el tendencia tienen dicha promociones a las personas, aunque todavia existe algunos que si lo perfectamente realizan. Recuerda cual los bonos de este clase se realizan que usan algun naturaleza sobre envite y inclusive con margen maximum de margen con el fin de apartar.<\/p>\n","protected":false},"excerpt":{"rendered":"

Para usuarios existentes, generalmente son tiradas sin cargo desplazandolo hacia el pelo, referente a acontecimientos incomodos, creditos de bono que nuestro jugador debe transformar antes de encaminarse algun remuneracion. Valore que nada mas puede solicitar y usar el bono desprovisto deposito la unica ocasii?n, independiente de la tarima. En cambio,\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-14214","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/14214","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=14214"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/14214\/revisions"}],"predecessor-version":[{"id":14215,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/14214\/revisions\/14215"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=14214"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=14214"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=14214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}