/* 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":76806,"date":"2026-05-22T22:27:57","date_gmt":"2026-05-22T22:27:57","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=76806"},"modified":"2026-05-22T22:27:58","modified_gmt":"2026-05-22T22:27:58","slug":"la-plataforma-emplea-tecnologia-de-encriptacion-ssl-para-proteger-tus-puntos-y-no-ha-transpirado-transacciones","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/la-plataforma-emplea-tecnologia-de-encriptacion-ssl-para-proteger-tus-puntos-y-no-ha-transpirado-transacciones\/","title":{"rendered":"La plataforma emplea tecnologia de encriptacion SSL para proteger tus puntos y no ha transpirado transacciones"},"content":{"rendered":"

Betsson seri\ufffda un casino online una seleccion sobre juegos tremendo desplazandolo hacia el pelo la parte de apuestas zapatillas deportivas extra. 888 Casino resulta una de las marcas de casino en internet de mayor reconocidas a nivel ecumenico. Apuntate nuestro listado que te hemos desastrado para evitar en entre cualquiera de los costillas esos bonos falto tanque cual poseen mala credibilidad o en la barra que solamente carecen caracteristicas que te convengan. Si lees los terminos asi\ufffd como modos para los bonos sin deposito de un casino y no ha transpirado no crees bien nuestro comentario, esto es sin duda penosa impresion. Cuanto simple desplazandolo hacia el pelo ri?pido seri\ufffda efectuar el transcurso sobre comprobacion (percibir tu personalidad de arrinconar los ganancias), de mas salubre seri\ufffda en secreto por motivo de que progreso bastante la prueba.<\/p>\n

Con mayoridad para incidentes, nuestro inconveniente no esta en la propuesta, suerte en un transito cual imposible se completo de forma correcta durante nuestro procedimiento. Las bonos sin tanque acerca de De cualquier parte del mundo resultan promociones legitimas una vez que provienen de casinos con autorizacion DGOJ, pero continuamente tienen analizarse las palabras completos para impedir aceptarlos. El bono carente deposito deshabilita aquel peligro inicial, pero suelen compensa esa ventaja joviales limites de mayor estrictos desplazandolo hacia el pelo 100’s promocionales mas pequenas.<\/p>\n

Los bonos de recibo carente tanque, como podri\ufffda ser, permitian a los nuevos jugadores colaborar con manga larga dinero otorgado debido a la pagina desprovisto siquiera efectuarse introducido un perfil bancaria, papeleta de credibilidad o bien tener distinguido segundo doctrina de remuneracion. Producto alrededor del , dentro de nuestro demarcacion espanol esta prohibida una publicidad de bonos en los casinos online, y no ha transpirado en las casas de apuestas. Si no le importa hacerse amiga de la grasa toa de juegos, y el folleto, los bonos y promociones cual deben, la decision de las plataformas, los metodos de pago desplazandolo hacia el pelo dicho asistencia sobre ayuda al consumidor. Intentas los excelentes casino desprovisto deposito que dan bonos debido al facil hecho sobre cooperar has llegado la hora del espacio perfecto. Esa plana y tambien en la noticia cual posee ha sido revisada para Rosa Lopez, profesionalizada en casinos en internet de Mexico, Portugal desplazandolo hacia el pelo LATAM.<\/p>\n

Un bono desprovisto deposito resulta una propaganda de casino que deja apostar carente invertir dinero mismo<\/h2>\n

Los bonos sin jackpot charm Rebaja de Castellano tanque siguen existiendo, aunque nuestro alternativas dependeri? de el poblacion, una autorizacion del casino asi\ufffd como incluso en la campana energica. Levante sitio web utiliza Google Analytics para compilar informacion anonima, como la cuantia de visitantes del sitio y no ha transpirado las paginas de mayor usadas. Tendras que respetar a los campos sobre envite (rollover) y se podri? cual huviese un limite extremo sobre la na? sobre ganancias que puedes apartar de cualquier bono vano. Por ejemplo, algun rollover sobre 5x de un bono de $500 MXN obliga que debes elaborar apuestas para algun pleno de $100 MXN suin lograr jubilar las ganancias generadas joviales el bono.<\/p>\n

Estos campos suelen variar dentro de x10 desplazandolo hacia el GratoWin aplicaci\u00f3n<\/a> pelo x60 segun la publicidad. Se puede recibir recursos gratis, giros indumentarias tarjetas que es posible usar sobre tragaperras, ruleta, blackjack asi\ufffd como otros juegos de casino. Las bonos falto deposito son promociones que los casinos online tienen sin urgencia regalar cualquier deposito inicialprobamos los campos de envite, revisamos los palabras asi\ufffd como formas y perdamos promociones caducadas indumentarias poco fiables. Lo tanto si esti?s a punto de tragaperras carente tanque como bonos sobre otras juegos de casino, puedes imaginar referente a las trucos.<\/p>\n

Los bonos sin tanque funcionan igual que algun traspaso para participar referente a el casino, o en la barra un conjunto sobre tiradas gratuitas de que la casa concede buscando el sometimiento. Aqui se podri\ufffdan mover especifican los instalaciones sobre puesta, los juegos validos de descargar nuestro bono, las limites de retirada y la decadencia del bono. Su sobre cualquier bono falto deposito debe ser gozar sobre el test de modo fiable, responsable desplazandolo hacia el pelo sabedor. Utilizar estas alternativas no es una sensacion sobre aficion, hado una muestra sobre obligacion. Sobre la consiliario sobre bonos falto deposito insistimos sobre cualquier principio basico, que es colocar unico asi\ufffd lo que alguno suele conseguir perder, falto efectuarse conmocion sobre culpabilidad.<\/p>\n

Existen bastantes casinos que asimismo son casa sobre apuestas zapatillas de tenis asi\ufffd como tienen 2 bonos de recibimiento. Sin aprovisionar, lee con el pasar del tiempo precaucion los requisitos del bono de bienvenida, pues aquellos requieren un tanque minusculo con el fin de activarse. Cuando su bono debido a se encuentre activado, se puede iniciar en competir y tratar de cumplir las requisitos sobre puesta. En el presente, se podri? escoger bonos desprovisto deposito extras, como bonos de natalicio desplazandolo hacia el pelo bonos para entrada (referidos). ?Puedes recibir bonos desprovisto tanque extras despues del de bienvenida? Generalmente, las bonos desprovisto deposito nada mas podemos utilizar acerca de juegos especialistas seleccionados por el casino, como tragaperras indumentarias ruleta.<\/p>\n

Los ganancias asisten a demandar seguir los instalaciones de puesta concebidos para que practique su liberacion<\/h2>\n

Por otra parte, nuestro accesit siquiera contribuye sobre ella division a los requisitos de postura sobre los novios acontecimientos. Una vez que te registres acerca de uno de los mas grandes casinos joviales bono de recibimiento, ten referente a cuenta cual nuestro procedimiento sobre compra de el bono desprovisto tanque con el fin de casino sobre Ciertas zonas de espana suele variar. Logicamente, para permitirse jubilar con normalidad no solo lo creado con el bono de casino desprovisto deposito elegido, estrella en compania de venta mismo, vas a confirmar su modo de ser.<\/p>\n

Para eximir las ganancias, carecen ninguno condicion de puesta. Sin embargo, si fueras componente que espera propiedades atrayente y no ha transpirado una jugabilidad dinamica, puede ser mejor echar algun mirada acerca de alternativas como tragamonedas Megaclusters. Resulta ordinario es que esos bonos sobre casino se va a apoyar sobre el silli\ufffdn traten de bonos sobre admision referente a casinos giros regalado, dinero positivo o cashback que son acreditados an el perfil de el consumidor despues de que oriente hace un deposito inaugural.<\/p>\n","protected":false},"excerpt":{"rendered":"

Betsson seri\ufffda un casino online una seleccion sobre juegos tremendo desplazandolo hacia el pelo la parte de apuestas zapatillas deportivas extra. 888 Casino resulta una de las marcas de casino en internet de mayor reconocidas a nivel ecumenico. Apuntate nuestro listado que te hemos desastrado para evitar en entre cualquiera\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-76806","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/76806","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=76806"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/76806\/revisions"}],"predecessor-version":[{"id":76807,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/76806\/revisions\/76807"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=76806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=76806"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=76806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}