window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/svg\/","svgExt":".svg","source":{"wpemoji":"https:\/\/jopioneiro.mtportal.info\/wp-includes\/js\/wp-emoji.js?ver=6.3.5","twemoji":"https:\/\/jopioneiro.mtportal.info\/wp-includes\/js\/twemoji.js?ver=6.3.5"}}; /** * @output wp-includes/js/wp-emoji-loader.js */ /** * Emoji Settings as exported in PHP via _print_emoji_detection_script(). * @typedef WPEmojiSettings * @type {object} * @property {?object} source * @property {?string} source.concatemoji * @property {?string} source.twemoji * @property {?string} source.wpemoji * @property {?boolean} DOMReady * @property {?Function} readyCallback */ /** * tests. * @typedef Tests * @type {object} * @property {?boolean} flag * @property {?boolean} emoji */ /** * IIFE to detect emoji and load Twemoji if needed. * * @param {Window} window * @param {Document} document * @param {WPEmojiSettings} settings */ ( function wpEmojiLoader( window, document, settings ) { if ( typeof Promise === 'undefined' ) { return; } var sessionStorageKey = 'wpEmojiSettingss'; var tests = [ 'flag', 'emoji' ]; /** * Checks whether the browser s offloading to a Worker. * * @since 6.3.0 * * @private * * @returns {boolean} */ function sWorkerOffloading() { return ( typeof Worker !== 'undefined' && typeof OffscreenCanvas !== 'undefined' && typeof URL !== 'undefined' && URL.createObjectURL && typeof Blob !== 'undefined' ); } /** * @typedef SessionTests * @type {object} * @property {number} timestamp * @property {Tests} Tests */ /** * Get tests from session. * * @since 6.3.0 * * @private * * @returns {?Tests} tests, or null if not set or older than 1 week. */ function getSessionTests() { try { /** @type {SessionTests} */ var item = JSON.parse( sessionStorage.getItem( sessionStorageKey ) ); if ( typeof item === 'object' && typeof item.timestamp === 'number' && new Date().valueOf() < item.timestamp + 604800 && // Note: Number is a week in seconds. typeof item.Tests === 'object' ) { return item.Tests; } } catch ( e ) {} return null; } /** * Persist the s in session storage. * * @since 6.3.0 * * @private * * @param {Tests} Tests tests. */ function setSessionTests( Tests ) { try { /** @type {SessionTests} */ var item = { Tests: Tests, timestamp: new Date().valueOf() }; sessionStorage.setItem( sessionStorageKey, JSON.stringify( item ) ); } catch ( e ) {} } /** * Checks if two sets of Emoji characters render the same visually. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be ed by parameters. * * @since 4.9.0 * * @private * * @param {CanvasRenderingContext2D} context 2D Context. * @param {string} set1 Set of Emoji to test. * @param {string} set2 Set of Emoji to test. * * @return {boolean} True if the two sets render the same. */ function emojiSetsRenderIdentically( context, set1, set2 ) { // Cleanup from previous test. context.clearRect( 0, 0, context.canvas.width, context.canvas.height ); context.fillText( set1, 0, 0 ); var rendered1 = new Uint32Array( context.getImageData( 0, 0, context.canvas.width, context.canvas.height ).data ); // Cleanup from previous test. context.clearRect( 0, 0, context.canvas.width, context.canvas.height ); context.fillText( set2, 0, 0 ); var rendered2 = new Uint32Array( context.getImageData( 0, 0, context.canvas.width, context.canvas.height ).data ); return rendered1.every( function ( rendered2Data, index ) { return rendered2Data === rendered2[ index ]; } ); } /** * Determines if the browser properly renders Emoji that Twemoji can supplement. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be ed by parameters. * * @since 4.2.0 * * @private * * @param {CanvasRenderingContext2D} context 2D Context. * @param {string} type Whether to test for of "flag" or "emoji". * @param {Function} emojiSetsRenderIdentically Reference to emojiSetsRenderIdentically function, needed due to minification. * * @return {boolean} True if the browser can render emoji, false if it cannot. */ function browsersEmoji( context, type, emojiSetsRenderIdentically ) { var isIdentical; switch ( type ) { case 'flag': /* * Test for Transgender flag compatibility. Added in Unicode 13. * * To test for , we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly (white flag emoji + transgender symbol). */ isIdentical = emojiSetsRenderIdentically( context, '\uD83C\uDFF3\uFE0F\u200D\u26A7\uFE0F', // as a zero-width er sequence '\uD83C\uDFF3\uFE0F\u200B\u26A7\uFE0F' // separated by a zero-width space ); if ( isIdentical ) { return false; } /* * Test for UN flag compatibility. This is the least ed of the letter locale flags, * so gives us an easy test for full . * * To test for , we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly ([U] + [N]). */ isIdentical = emojiSetsRenderIdentically( context, '\uD83C\uDDFA\uD83C\uDDF3', // as the sequence of two code points '\uD83C\uDDFA\u200B\uD83C\uDDF3' // as the two code points separated by a zero-width space ); if ( isIdentical ) { return false; } /* * Test for English flag compatibility. England is a country in the United Kingdom, it * does not have a two letter locale code but rather a five letter sub-division code. * * To test for , we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly (black flag emoji + [G] + [B] + [E] + [N] + [G]). */ isIdentical = emojiSetsRenderIdentically( context, // as the flag sequence '\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67\uDB40\uDC7F', // with each code point separated by a zero-width space '\uD83C\uDFF4\u200B\uDB40\uDC67\u200B\uDB40\uDC62\u200B\uDB40\uDC65\u200B\uDB40\uDC6E\u200B\uDB40\uDC67\u200B\uDB40\uDC7F' ); return ! isIdentical; case 'emoji': /* * Why can't we be friends? Everyone can now shake hands in emoji, regardless of skin tone! * * To test for Emoji 14.0 , try to render a new emoji: Handshake: Light Skin Tone, Dark Skin Tone. * * The Handshake: Light Skin Tone, Dark Skin Tone emoji is a ZWJ sequence combining 🫱 Rightwards Hand, * 🏻 Light Skin Tone, a Zero Width er, 🫲 Leftwards Hand, and 🏿 Dark Skin Tone. * * 0x1FAF1 == Rightwards Hand * 0x1F3FB == Light Skin Tone * 0x200D == Zero-Width er (ZWJ) that links the code points for the new emoji or * 0x200B == Zero-Width Space (ZWS) that is rendered for clients not ing the new emoji. * 0x1FAF2 == Leftwards Hand * 0x1F3FF == Dark Skin Tone. * * When updating this test for future Emoji releases, ensure that individual emoji that make up the * sequence come from older emoji standards. */ isIdentical = emojiSetsRenderIdentically( context, '\uD83E\uDEF1\uD83C\uDFFB\u200D\uD83E\uDEF2\uD83C\uDFFF', // as the zero-width er sequence '\uD83E\uDEF1\uD83C\uDFFB\u200B\uD83E\uDEF2\uD83C\uDFFF' // separated by a zero-width space ); return ! isIdentical; } return false; } /** * Checks emoji tests. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be ed by parameters. * * @since 6.3.0 * * @private * * @param {string[]} tests Tests. * @param {Function} browsersEmoji Reference to browsersEmoji function, needed due to minification. * @param {Function} emojiSetsRenderIdentically Reference to emojiSetsRenderIdentically function, needed due to minification. * * @return {Tests} tests. */ function testEmojis( tests, browsersEmoji, emojiSetsRenderIdentically ) { var canvas; if ( typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope ) { canvas = new OffscreenCanvas( 300, 150 ); // Dimensions are default for HTMLCanvasElement. } else { canvas = document.createElement( 'canvas' ); } var context = canvas.getContext( '2d', { willReadFrequently: true } ); /* * Chrome on OS X added native emoji rendering in M41. Unfortunately, * it doesn't work when the font is bolder than 500 weight. So, we * check for bold rendering to avoid invisible emoji in Chrome. */ context.textBaseline = 'top'; context.font = '600 32px Arial'; var s = {}; tests.forEach( function ( test ) { s[ test ] = browsersEmoji( context, test, emojiSetsRenderIdentically ); } ); return s; } /** * Adds a script to the head of the document. * * @ignore * * @since 4.2.0 * * @param {string} src The url where the script is located. * * @return {void} */ function addScript( src ) { var script = document.createElement( 'script' ); script.src = src; script.defer = true; document.head.appendChild( script ); } settings.s = { everything: true, everythingExceptFlag: true }; // Create a promise for DOMContentLoaded since the worker logic may finish after the event has fired. var domReadyPromise = new Promise( function ( resolve ) { document.addEventListener( 'DOMContentLoaded', resolve, { once: true } ); } ); // Obtain the emoji from the browser, asynchronously when possible. new Promise( function ( resolve ) { var Tests = getSessionTests(); if ( Tests ) { resolve( Tests ); return; } if ( sWorkerOffloading() ) { try { // Note that the functions are being ed as arguments due to minification. var workerScript = 'postMessage(' + testEmojis.toString() + '(' + [ JSON.stringify( tests ), browsersEmoji.toString(), emojiSetsRenderIdentically.toString() ].( ',' ) + '));'; var blob = new Blob( [ workerScript ], { type: 'text/javascript' } ); var worker = new Worker( URL.createObjectURL( blob ), { name: 'wpTestEmojis' } ); worker.onmessage = function ( event ) { Tests = event.data; setSessionTests( Tests ); worker.terminate(); resolve( Tests ); }; return; } catch ( e ) {} } Tests = testEmojis( tests, browsersEmoji, emojiSetsRenderIdentically ); setSessionTests( Tests ); resolve( Tests ); } ) // Once the browser emoji has been obtained from the session, finalize the settings. .then( function ( Tests ) { /* * Tests the browser for flag emojis and other emojis, and adjusts the * settings accordingly. */ for ( var test in Tests ) { settings.s[ test ] = Tests[ test ]; settings.s.everything = settings.s.everything && settings.s[ test ]; if ( 'flag' !== test ) { settings.s.everythingExceptFlag = settings.s.everythingExceptFlag && settings.s[ test ]; } } settings.s.everythingExceptFlag = settings.s.everythingExceptFlag && ! settings.s.flag; // Sets DOMReady to false and assigns a ready function to settings. settings.DOMReady = false; settings.readyCallback = function () { settings.DOMReady = true; }; } ) .then( function () { return domReadyPromise; } ) .then( function () { // When the browser can not render everything we need to load a polyfill. if ( ! settings.s.everything ) { settings.readyCallback(); var src = settings.source || {}; if ( src.concatemoji ) { addScript( src.concatemoji ); } else if ( src.wpemoji && src.twemoji ) { addScript( src.twemoji ); addScript( src.wpemoji ); } } } ); } )( window, document, window._wpemojiSettings ); window.tdb_global_vars = {"wpRestUrl":"https:\/\/jopioneiro.mtportal.info\/wp-json\/","permalinkStructure":"\/%postname%\/"}; window.tdb_p_autoload_vars = {"isAjax":false,"isBarShowing":false,"autoloadStatus":"off","origPostEditUrl":null};
Entrar
Bem-vindo! Entre na sua conta
Recuperar senha
Recupere sua senha
Uma senha será enviada por e-mail para você.
domingo, 25 maio, 2025
InícioNotíciasDestaquesBNDES vai emprestar R$ 200 milhões para concessão rodoviária, garantia será o...

BNDES vai emprestar R$ 200 milhões para concessão rodoviária, garantia será o próprio projeto; entenda

O Banco Nacional de Desenvolvimento Econômico e Social (BNDES) aprovou um empréstimo de R$ 200 milhões para a Via Brasil MT 100, concessionária que opera um trecho de 91,5 quilômetros da MT-100, rodovia estadual de Mato Grosso, entre as cidades de Alto Araguaia e Alto Taquari.

Embora o valor seja pequeno para os padrões bilionários do banco de fomento, é mais um o para diversificar os instrumentos de crédito à infraestrutura, já que o empréstimo foi estruturado com um “project finance non recourse”, com lastro em garantias emergentes apenas do projeto de concessão.

Tradicional instrumento de financiamento em diversos países, nesse tipo de financiamento, o tomador do empréstimo oferece como garantias receitas e direitos associados apenas ao próprio projetoImagem: Shutterstock

O financiamento de R$ 200 milhões corresponde a pouco menos da metade do investimento total previsto na concessão, de R$ 550 milhões em 30 anos.

A maior parte do valor, R$ 300 milhões, tem de ser aportada nos sete primeiros anos de contrato – a concessão foi leiloada em 2018.

O projeto prevê a recuperação total do pavimento da rodovia, a duplicação de pistas, a construção de terceiras faixas, vias marginais e acostamentos, além da implantação de serviços de atendimento ao usuário (SAU), com guinchos e ambulâncias.

Desde 2020, o alto comando do BNDES vinha sinalizando que, embora tivesse recursos de longo prazo, em reais, para emprestar aos projetos de infraestrutura necessários ao País, o banco de fomento aria a atuar como “coordenador” das operações de financiamento a esses investimentos, atraindo financiadores privados.

Um dos instrumentos desse novo papel no financiamento à infraestrutura é o “project finance puro”.

Tradicional instrumento de financiamento a projetos em diversos países, nesse tipo de financiamento, o tomador do empréstimo é a concessionária criada para operar uma concessão ou parceria público-privada (PPP), que oferece como garantias receitas e direitos associados apenas ao próprio projeto.

No modelo anterior, historicamente, quando financiava grandes obras de infraestrutura com juros abaixo dos de mercado, o BNDES já usava o “project finance”, mas sempre exigindo ativos, fianças corporativas ou fianças bancárias dos sócios das concessionárias em garantia – por isso, muitos consideram que o modelo nunca foi usado para valer no Brasil.

Para fazer deslanchar o “project finance” para valer, o BNDES precisa aceitar correr mais riscos nas operações, reduzindo a exigência de garantias.

Como funciona

Um primeiro o foi dado na virada de ano, com a aprovação do empréstimo de R$ 7 bilhões para a operadora da PPP da Linha 6-Laranja do Metrô de São Paulo.

Nessa operação, um sindicato de bancos deu aval para metade do valor, enquanto o BNDES assumiu o risco na metade restante. Não foram exigidas fianças corporativas.

O contrato de construção, conhecido no mercado como EPC, conforme a sigla, em inglês, para engenharia, gestão de compras e construção, colocou na conta da construtora do projeto, e não na concessionária, riscos como elevação de gastos ou atrasos nas obras.

No caso do projeto da Via Brasil MT 100, tampouco foram exigidas garantias corporativas dos sócios ou fianças bancárias.

Para mitigar o risco, a concessionária fez um aporte inicial de R$ 53 milhões no projeto, três vezes mais do que era exigido no contrato de concessão.

Além disso, uma conta especial separará, ao longo da concessão, um porcentual da receita de pedágio, funcionando como um “fundo” para fazer frente aos investimentos.

Segundo o BNDES, a estruturação do financiamento para o trecho da MT-100 “seguiu as melhores práticas internacionais e foi ao encontro das necessidades de um projeto cujos acionistas são de menor porte”.

Entre os sócios da concessionária Via Brasil MT 100 estão a Conasa Infraestutura, a Zetta Infraestrutura e Participações, a construtora Rocha Cavalcante, a Fremix Pavimentação e Construção, a FBS Construção Civil e Pavimentação, a Construtora Laços Detetores e Eletrônico.

Um dos desafios para o caso de empresas de menor porte que se associam para atuar em concessões de infraestrutura é “obtenção de garantias corporativas ou mesmo para ar o mercado financeiro e negociar fianças bancárias com custo que não prejudiquem o projeto”, segundo o BNDES.

Por Estadão Conteúdo.

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.