<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->
<!DOCTYPE html>
<html lang="en">
<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    
    
    <script type="text/javascript">
        if(window.location.protocol != 'https:') {
            location.href =   location.href.replace("http://", "https://");
        }
    </script>
    


    <title>Apache Wayang - Publications</title>
    <link rel="icon" href="https://wayang.apache.org/assets/img/logo/favicon-pluma.ico">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
    <link rel="stylesheet" href="https://wayang.apache.org/assets/css/color.css">
    <link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css" integrity="sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p" crossorigin="anonymous"/>

    <link rel="stylesheet" href="https://wayang.apache.org/assets/css/monokai.css">
    <link rel="stylesheet" href="https://wayang.apache.org/assets/css/home.css">

</head>
<body>



    
    

    
    

    
    

    
    

    
    

    
    

    
    
        
    


<nav class="navbar navbar-expand-lg navbar-light bg-light sticky-top shadow-lg">
    <div class="container d-flex justify-content-between w-100">
            <div class="mr-auto p-2 w-100">
                <div class="d-flex">
                    <a class="navbar-brand mr-auto" href="/">
                        <img style="max-height: 75px" src="https://wayang.apache.org/assets/img/logo/logo_400x160.png"/>
                    </a>
                    <button class="navbar-toggler ml-auto align-self-center" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                        <span class="navbar-toggler-icon"></span>
                    </button>
                </div>

            </div>

            <div>
                <div class="p-2 collapse navbar-collapse" id="navbarSupportedContent">
                    <div class="navbar-nav">
                        
                        

                        
                        
                        <li class="nav-item ">
                            <a class="nav-link" href="https://wayang.apache.org/">
                                Home
                            </a>
                        </li>
                        
                        
                        

                        
                        
                        <li class="nav-item ">
                            <a class="nav-link" href="https://wayang.apache.org/about">
                                About
                            </a>
                        </li>
                        
                        
                        

                        
                        
                        <li class="nav-item ">
                            <a class="nav-link" href="https://wayang.apache.org/community">
                                Community
                            </a>
                        </li>
                        
                        
                        

                        
                        
                        <li class="nav-item ">
                            <a class="nav-link" href="https://wayang.apache.org/download">
                                Download
                            </a>
                        </li>
                        
                        
                        

                        
                        
                        <li class="nav-item ">
                            <a class="nav-link" href="https://wayang.apache.org/documentation">
                                Documentation
                            </a>
                        </li>
                        
                        
                        

                        
                        
                        <li class="nav-item ">
                            <a class="nav-link" href="https://wayang.apache.org/publications-home">
                                Publications
                            </a>
                        </li>
                        
                        
                        

                        
                        
                        <li class="nav-item dropdown ">
                            <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
                                Apache
                            </a>
                            <div class="dropdown-menu">
                                
                                <a class="dropdown-item" href="https://www.apache.org/foundation/how-it-works.html">
                                    Apache Software Foundation
                                </a>
                                
                                <a class="dropdown-item" href="https://www.apache.org/licenses/">
                                    License
                                </a>
                                
                                <a class="dropdown-item" href="https://www.apache.org/events/current-event">
                                    Events
                                </a>
                                
                                <a class="dropdown-item" href="https://www.apache.org/security/">
                                    Security
                                </a>
                                
                                <a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">
                                    Sponsorship
                                </a>
                                
                                <a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">
                                    Thanks
                                </a>
                                
                            </div>
                        </li>
                        
                        
                    </div>
                </div>
            </div>
        </div>
    </div>



</nav>
<div class="container-fluid p-0">
  <div class="title-post mb-3 mt-n5 d-flex align-items-center shadow" >
    <div class="col pt-4" style="text-align: center">
        <h1 class="mb-n2 mt-1" style="color: white; font-size: 4em">Publications</h1>
        
    </div>
</div>

<section>
    <div class="container timeline mt-n3">
        <div class="row">
            <div class="col-12">
            <br>
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2021 - 08 - 16
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Apache Wayang: A Big Data Cross-Platform System

                </h4>
                <p>Workshop BOSS'21 at VLDB'21</p>

                <p><strong>Authors: </strong>Zoi Kaoudi, Bertty Contreras-Rojas and Rodrigo Pardo-Meza</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2021-08-13-boss/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://www.youtube.com/watch?v=jgD_1tPn9sc">
                    <i class="fas fa-external-link-alt"></i> External Link
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2021 - 6 - 20
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    The Power of Nested Parallelism in Big Data Processing -- Hitting Three Flies with One Slap

                </h4>
                <p>SIGMOD 2021</p>

                <p><strong>Authors: </strong>Gábor E. Gévay, Jorge-Arnulfo Quiané-Ruiz and Volker Markl.</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2021-06-21-sigmod/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://www.agora-ecosystem.com/publications/nested/">
                    <i class="fas fa-external-link-alt"></i> External Link
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2020 - 11 - 17
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Prescriptive Learning for Air-Cargo Revenue Management

                </h4>
                <p>ICDM 2020</p>

                <p><strong>Authors: </strong>Stefano Giovanni Rizzo, Yixian Chen, Linsey Pang, Ji Lucas, Zoi Kaoudi, Jorge-Arnulfo Quiané-Ruiz and Sanjay Chawla</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2020-11-17-icdm/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://ieeexplore.ieee.org/document/9338388">
                    <i class="fas fa-external-link-alt"></i> External Link
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2020 - 11 - 1
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    RHEEMix in the Data Jungle: A Cost-based Optimizer for Cross-Platform Systems

                </h4>
                <p>VLDB Journal 29(6), 2020</p>

                <p><strong>Authors: </strong>Sebastian Kruse, Zoi Kaoudi, Sanjay Chawla, Felix Naumann, Bertty Contreras-Rojas and Jorge-Arnulfo Quiané-Ruiz</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2020-11-01-journal_vldb/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/journal_vldb.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2020 - 4 - 20
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    ML-based Cross-Platform Query Optimization

                </h4>
                <p>ICDE 2020</p>

                <p><strong>Authors: </strong>Zoi Kaoudi, Jorge-Arnulfo Quiané-Ruiz, Bertty Contreras-Rojas, Rodrigo Pardo-Meza, Anis Troudi and Sanjay Chawla</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2020-04-20-icde/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/icde20.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2019 - 11 - 20
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    TagSniff: Simplified Big Data Debugging for Dataflow Jobs

                </h4>
                <p>SoCC 2019</p>

                <p><strong>Authors: </strong>Bertty Contreras-Rojas, Jorge-Arnulfo Quiané-Ruiz, Zoi Kaoudi and Saravanan Thirumuruganathan</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2019-11-20-socc/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/socc19.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2019 - 4 - 7
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Optimizing Cross-platform Data Movement

                </h4>
                <p>ICDE 2019</p>

                <p><strong>Authors: </strong>Sebastian Kruse, Zoi Kaoudi, Jorge-Arnulfo Quiané-Ruiz, Sanjay Chawla, Felix Naumann and Bertty Contreras-Rojas</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2019-04-07-icde/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/icde19.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2018 - 08 - 27
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    RHEEM: Enabling Cross-Platform Data Processing

                </h4>
                <p>Paper at PVLDB 11(11) 2018</p>

                <p><strong>Authors: </strong>Divy Agrawal, Sanjay Chawla, Zoi Kaoudi, Sebastian Kruse, Jorge-Arnulfo Quiané-Ruiz, Bertty Contreras-Rojas, Ahmed Elmagarmid, Yasser Idris, Ji Lucas, Essam Mansour, Mourad Ouzzani, Paolo Papotti, Nan Tang, Saravanan Thirumuruganathan and Anis Troudi</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2018-08-27-vldb/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/rheem.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2018 - 4 - 16
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Cross-Platform Data Processing: Use Cases and Challenges

                </h4>
                <p>Tutorial at ICDE 2018</p>

                <p><strong>Authors: </strong>Zoi Kaoudi and Jorge-Arnulfo Quiané-Ruiz</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2018-04-16-icde-tutorial/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/rheemtutorial.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2018 - 4 - 16
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    RheemStudio: Cross-Platform Data Analytics Made Easy

                </h4>
                <p>Demo at ICDE 2018</p>

                <p><strong>Authors: </strong>Ji Lucas, Yasser Idris, Bertty Contreras-Rojas, Jorge-Arnulfo Quiané-Ruiz and Sanjay Chawla</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2018-04-16-icde-demo/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/studiodemo.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2017 - 6 - 12
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Interoperating a Zoo of Data Processing Platforms Using Rheem

                </h4>
                <p>Talk at Spark Summit 2017</p>

                <p><strong>Authors: </strong>Yasser Idris and Sebastian Kruse</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2017-06-12-spark_summit/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://databricks.com/session/interoperating-a-zoo-of-data-processing-platforms-using-rheem">
                    <i class="fas fa-external-link-alt"></i> External Link
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2017 - 5 - 14
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    A Cost-based Optimizer for Gradient Descent Optimization

                </h4>
                <p>Paper at SIGMOD 2017</p>

                <p><strong>Authors: </strong>Zoi Kaoudi, Jorge-Arnulfo Quiané-Ruiz, Saravanan Thirumuruganathan, Sanjay Chawla and Divy Agrawal</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2017-05-14-sigmod/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/ml4all.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2016 - 09 - 7
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Fast and Scalable Inequality Joins

                </h4>
                <p>VLDB Journal 26(1) 2017</p>

                <p><strong>Authors: </strong>Zuhair Khayyat, William Lucia, Meghna Singh, Mourad Ouzzani, Paolo Papotti, Jorge-Arnulfo Quiané-Ruiz, Nan Tang, Panos Kalnis.</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2016-09-07-vldb/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/vldbj17.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2016 - 09 - 5
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Rheem

                </h4>
                <p>Tutorial at BOSS 2016</p>

                <p><strong>Authors: </strong>Zoi Kaoudi, Sebastian Kruse and Jorge-Arnulfo Quiané-Ruiz</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2016-09-05-vldb/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/rheemhandson.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2016 - 6 - 26
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Rheem: Enabling Multi-Platform Task Execution

                </h4>
                <p>Demo at SIGMOD 2016</p>

                <p><strong>Authors: </strong>Divy Agrawal, Lamine Ba, Laure Berti-Equille, Sanjay Chawla, Ahmed Elmagarmid, Hossam Hammady, Yasser Idris, Zoi Kaoudi, Zuhair Khayyat, Sebastian Kruse, Mourad Ouzzani, Paolo Papotti, Jorge-Arnulfo Quiané-Ruiz, Nan Tang and Mohammed J. Zaki</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2016-06-26-sigmod/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/rheemdemo.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2016 - 3 - 15
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Road to Freedom in Data Analytics

                </h4>
                <p>Vision Paper at EDBT 2016</p>

                <p><strong>Authors: </strong>Divy Agrawal, Sanjay Chawla, Ahmed Elmagarmid, Zoi Kaoudi, Mourad Ouzzani, Paolo Papotti, Jorge-Arnulfo Quiané-Ruiz, Nan Tang and Mohammed J. Zaki</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2016-03-15-edbt/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/vision.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2015 - 08 - 31
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    Lightning Fast and Space Efficient Inequality Joins

                </h4>
                <p>Paper at PVLDB 8(13) 2015</p>

                <p><strong>Authors: </strong>Zuhair Khayyat, William Lucia, Meghna Singh, Mourad Ouzzani, Paolo Papotti, Jorge-Arnulfo Quiané-Ruiz, Nan Tang and Panos Kalnis</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2015-08-31-vldb/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/iejoin.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
        <div class="row">
            <div class="col-12 pl-0 mb-2">
                <i class="fas fa-caret-right"></i>
                2015 - 5 - 31
            </div>
        </div>
        <div class="row">
            <div class="col-12 ml-2 mb-5">
                <h4>
                    BigDansing: A System for Big Data Cleansing

                </h4>
                <p>Paper at SIGMOD 2015</p>

                <p><strong>Authors: </strong>Zuhair Khayyat, Ihab F. Ilyas, Alekh Jindal, Samuel Madden, Mourad Ouzzani, Paolo Papotti, Jorge-Arnulfo Quiané-Ruiz, Nan Tang and Si Yin</p>
                <a class="btn btn-outline-secondary" href="https://wayang.apache.org/publications/2015-05-31-sigmod/">
                    <i class="fas fa-glasses"></i> Read more...
                </a>
                
                <a class="btn btn-outline-info" href="https://wayang.apache.org/assets/pdf/paper/bigdansing.pdf">
                    <i class="fas fa-download"></i> Download
                </a>
                
            </div>
        </div>
    
    </div>
</section>






</div>

<footer class="footer position-sticky sticky-bottom">
    <nav class="navbar navbar-light bg-light"  style="background: #A6A6A6;">
        <div class="container">
            <div class="row">
                <div class="col text-center">
                    <a href="http://incubator.apache.org/" >
                        <img style="max-height: 15vw" src="https://wayang.apache.org/assets/img/egg-logo.png">
                    </a>
                    <br />
                    <p style="text-align: justify">
                        Apache Wayang is an effort undergoing Incubation at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
                    </p>
                    <p class="text-center">
                        Copyright &#169; 2022 The Apache Software Foundation.<br />
                        Licensed under the Apache License, Version 2.0.<br />
                        Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache Software Foundation.
                    </p>
                </div>
            </div>
            <div class="row justify-content-md-center w-100">
                    <div class="col-md-3">
                        <a class="btn btn-link w-100" href="https://incubator.apache.org">
                            Apache Incubator
                        </a>
                    </div>
                    <div class="col-md-3">
                        <a class="btn btn-link w-100" href="https://www.apache.org">
                            About ASF
                        </a>
                    </div>
                    <div class="col-md-3">
                        <a class="btn btn-link w-100" href="https://www.apache.org/licenses/">
                            License
                        </a>
                    </div>
                    <div class="col-md-3">
                        <a class="btn btn-link w-100" href="https://www.apache.org/events/current-event">
                            Events
                        </a>
                    </div>
                    <div class="col-md-3">
                        <a class="btn btn-link w-100" href="https://www.apache.org/security/">
                            Security
                        </a>
                    </div>
                    <div class="col-md-3">
                        <a class="btn btn-link w-100" href="https://www.apache.org/foundation/sponsorship.html">
                            Sponsorship
                        </a>
                    </div>
                    <div class="col-md-3">
                        <a class="btn btn-link w-100" href="https://www.apache.org/foundation/thanks.html">
                            Thanks
                        </a>
                    </div>
            </div>
        </div>
    </nav>
</footer>


<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script>

<script src="https://wayang.apache.org/assets/js/add_numbers.js"></script>
</body>

</html>
