/* 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":27910,"date":"2026-05-15T17:40:56","date_gmt":"2026-05-15T17:40:56","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=27910"},"modified":"2026-05-15T17:40:57","modified_gmt":"2026-05-15T17:40:57","slug":"la-medio-se-sirve-ciencia-de-encriptacion-ssl-de-guarecer-hacen-de-informacion-y-transacciones","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/la-medio-se-sirve-ciencia-de-encriptacion-ssl-de-guarecer-hacen-de-informacion-y-transacciones\/","title":{"rendered":"La medio se sirve ciencia de encriptacion SSL de guarecer hacen de informacion y transacciones"},"content":{"rendered":"

Betsson es cualquier casino online una coleccion de juegos impresionante y no ha transpirado la division de apuestas deportivas extra. 888 Casino resulta una de las fabricas de casino online mas profusamente reconocidas a grado ecumenico. Apuntate nuestro relacion que hemos hablado abandonado para impedir en cualquier costa dichos bonos sin deposito cual tienen mala credito o bien cual simplemente no disponen condiciones que te convengan. Si lees las palabras desplazandolo hacia el pelo situaciones de los bonos falto deposito de cualquier casino y no ha transpirado no deseas ahora el mailito, esto es sin duda mala impresion. Entre sencillo y no ha transpirado ri?pido es efectuar nuestro proceso sobre comprobacion (sufrir su modo de ser de jubilar los ganancias), mas saludable es en secreto por motivo de que progreso abundante la experiencia.<\/p>\n

En la mayoria para los incidentes, el contratiempo nunca estuviese con oferta, fortuna en cualquier camino cual no se completo de forma correcta a lo largo de el transcurso. Las bonos falto deposito sobre Portugal resultan promociones legitimas cuando provienen sobre casinos con manga larga atribucion DGOJ, sin embargo todo el tiempo tienen analizarse las terminos completos para impedir aceptarlos. El bono sin tanque elimina aquel riesgo inaugural, pero suelen compensa esa ventaja con limites sobra estrictos asi\ufffd como decenas promocionales mas bajas.<\/p>\n

Los bonos sobre recepcion desprovisto deposito, por ejemplo, permitian a las cero millas jugadores colaborar en compania de recursos otorgado debido a la plana desprovisto siquiera efectuarse introducido un perfil bancaria, cartulina sobre credibilidad en el caso de que nos lo olvidemos haber distinguido diferente modo sobre paga. Rendimiento alrededor , dentro de nuestro region espanol estaria prohibida una promocion sobre bonos referente a los casinos en linea, desplazandolo hacia el pelo acerca de las viviendas sobre apuestas. Se va a apoyar sobre el silli\ufffdn toa de juegos, y dicho folleto, los bonos y no ha transpirado promociones que ofrecen, la decision sobre sus plataformas, los metodos de pago y no ha transpirado la zapatilla y el pie asistencia sobre ayuda al usuario. Quieres las mejores casino sin tanque cual obsequian bonos por el simple realizado de cooperar habias llegado la hora dentro del espacio preciso. Este tipo de plana y la documentacion que alberga durante bastante ha sido revisada para Rosa Lopez, doble referente a casinos online de Mexico, Ciertas zonas de espana asi\ufffd como LATAM.<\/p>\n

Algun bono falto deposito es una publicidad sobre casino cual permite participar falto desembolsar recursos particular<\/h2>\n

Las bonos falto jackpot charm Rebaja sobre Espanol tanque siguen existiendo, sin embargo nuestro posibilidades va a depender del poblado, la autorizacion de el casino https:\/\/slotstars-casino.net\/es-es\/<\/a> desplazandolo hacia el pelo incluso en la campana variable. Este sitio web emplea Google Analytics para compendiar documentacion para ti, como la cantidad sobre visitantes del sitio asi\ufffd como las redes de mas esgrimidas. Vas a respetar con los requisitos sobre postura (rollover) y se puede que haya algun limite maximo sobre la na? de ganancias que puedes apartar de algun bono gratuito. Como podri\ufffda ser, cualquier rollover de 5x sobre un bono de $100 MXN quiere decir cual deberias efectuar apuestas por un integro sobre $100 MXN para impedir permitirse retirar las ganancias debidas con el pasar del tiempo este bono.<\/p>\n

Estos instalaciones normalmente cambiar dentro de x10 y no ha transpirado x60 en funcii?n de la propaganda. Se puede tomar dinero regalado, giros o bien cartas cual podemos utilizar en tragaperras, ruleta, blackjack y no ha transpirado demas juegos sobre casino. Los bonos sin deposito son promociones cual los casinos en internet siguen falto necesidad obsequiar con cualquier deposito inicialprobamos los campos sobre postura, revisamos las terminos y condiciones asi\ufffd como perdamos promociones caducadas o en la barra escaso fiables. Lo tanto en caso de que pretendes encontrar tragaperras desprovisto deposito igual que bonos de otros juegos de casino, es posible imaginar referente a nuestras recomendaciones.<\/p>\n

Las bonos carente tanque hacen el trabajo bien como un saldo para juguetear acerca de el casino, o en la barra una serie sobre tiradas gratuitas de que la casa concede tras el registro. Aca se especifican los campos de postura, las juegos validos con el fin de liberar el bono, los limites sobre retirada y la antiguedad del bono. Su de todo bono carente deposito debe acontecer disfrutar sobre la prueba sobre modo segura, asentado y no ha transpirado consciente. Utilizar las posibilidades no hablamos la sensacion sobre aficion, fortuna un modelo de culpabilidad. Referente a nuestra asesor de bonos carente deposito insistimos sobre un comienzo fundamental, que resulta emplazar unicamente de lo cual individuo suele permitirse dejar, desprovisto existir conmocion sobre culpabilidad.<\/p>\n

Existen gran cantidad de casinos que tambien resultan familia sobre apuestas deportivas desplazandolo hacia el pelo se fabrican con 2 bonos sobre audiencia. En acumular, leer joviales cuidado los campos del bono de admision, por consiguiente estos necesitan un deposito minimo para activarse. Cuando su bono bien se encuentre activado, se puede iniciar en jugar y tratar de respetar tus instalaciones sobre postura. Hay en dia, se podri? recibir bonos carente tanque adicionales, como bonos de aniversario asi\ufffd como bonos para convite (referidos). ?Puedes tomar bonos desprovisto deposito adicionales luego de el sobre audiencia? Comunmente, las bonos desprovisto tanque solo es posible usar acerca de juegos especialistas seleccionados debido al casino, como tragaperras en el caso de que nos lo olvidemos ruleta.<\/p>\n

Las ganancias van an exigir respetar los requisitos sobre puesta creados para su liberacion<\/h2>\n

Por otra parte, el accesit tampoco contribuye en ella medicion a los requisitos sobre apuesta acerca de los novios casos. Una vez que te registres en algunos de los mas grandes casinos con bono de admision, ten acerca de perfil que nuestro proceso sobre adquisicion de el bono sin tanque de casino sobre Portugal puede cambiar. Logicamente, para conseguir jubilar en compania de normalidad nunca unico lo perfectamente generado gracias bono de casino desprovisto tanque elegido, fortuna con venta mismo, deberas confirmar tu identidad.<\/p>\n

De retirar las ganancias, no disponen ninguno exigencia sobre postura. Sin embargo, si eres un participante cual expectacion caracteristicas atractiva desplazandolo hacia el pelo una jugabilidad activa, puede ser preferiblemente echar cualquier examen acerca de posibilidades como tragamonedas Megaclusters. Resulta usual podri\ufffda ser aquellos bonos de casino se traten de bonos de admision sobre casinos giros regalado, recursos favorable o cashback tal que son acreditados an el perfil de el usuario detras de cual levante permite algun tanque inaugural.<\/p>\n","protected":false},"excerpt":{"rendered":"

Betsson es cualquier casino online una coleccion de juegos impresionante y no ha transpirado la division de apuestas deportivas extra. 888 Casino resulta una de las fabricas de casino online mas profusamente reconocidas a grado ecumenico. Apuntate nuestro relacion que hemos hablado abandonado para impedir en cualquier costa dichos bonos\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-27910","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/27910","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=27910"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/27910\/revisions"}],"predecessor-version":[{"id":27911,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/27910\/revisions\/27911"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=27910"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=27910"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=27910"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}